Jump to content

Aurweb RPC interface (Magyar)

From ArchWiki
Fordítás állapota: Ez az oldal az angol Aurweb RPC interface című oldal magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2026.05.29. Amennyiben a lefordítás időpontja óta az angol nyelvű oldalon történtek újabb módosítások, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.

Az Aurweb RPC interface egy könnyűsúlyú távoli eljáráshívás (angolul: remote procedure call, röviden: RPC) interfész az AUR szoftvercsomag-tároló számára. A lekérdezések HTTP GET kérések formájában vannak elküldve, a szerver pedig JSON formájában válaszol vissza.

Megjegyzés Ez a cikk az RPC Interface API v5-ös verzióját ismerteti, amely az AUR v4.7.0-val lett frissítve 2018. július 7-én.

API használata

Lekérdezési típusok

Kettő lekérdezési típus létezik:

  • search
  • info

A szoftvercsomag-keresések a következő formában kiadott kérésekkel végezhetők el:

/rpc/v5/search/kulcsszó?by=mező

Ahol a kulcsszó a keresési argumentum, és a mező a következő értékek egyike:

  • name (Keresés csak szoftvercsomagnév alapján.)
  • name-desc (Keresés szoftvercsomagnév és leírás alapján.)
  • maintainer (Keresés szoftvercsomag-karbantartó alapján.)
  • comaintainers (Keresés szoftvercsomag társkarbantartói alapján.)
  • depends (Azokra a szoftvercsomagokra keres, amelyek a kulcsszavaktól függenek.)
  • makedepends (Azokra a szoftvercsomagokra keres, amelyek kódfordítási függőségként használják a kulcsszavakat.)
  • optdepends (Azokra a szoftvercsomagokra keres, amelyek opcionális függőségként használják a kulcsszavakat.)
  • checkdepends (Azokra a szoftvercsomagokra keres, amelyek ellenőrzési függőségként használják a kulcsszavakat.)
  • provides (Keresés a kulcsszót biztosító szoftvercsomag alapján.)
  • conflicts (Keresés a kulcsszóval ütköző szoftvercsomag alapján.)
  • replaces (Keresés a kulcsszót helyettesítő szoftvercsomag alapján.)
  • groups (Keresés szoftvercsomagcsoportok alapján.)
  • submitter (Keresés szoftvercsomag-beküldő alapján.)

A by paraméter elhagyható, alapértelmezetten a name-desc értéket használja. A search és error a lehetséges visszatérési típusok.

Ha szoftvercsomag-karbantartó szerinti keresés történik, és a keresési argumentum üresen marad, akkor az elárvult szoftvercsomagok listája kerül visszaadásra.

Példák:

A szoftvercsomag keresése:

https://aur.archlinux.org/rpc/v5/search/szoftvercsomag

A felhasználó által karbantartott szoftvercsomagok keresése:

https://aur.archlinux.org/rpc/v5/search/felhasználó?by=maintainer

Azon szoftvercsomagok keresése, amelyeknél a szoftvercsomag szerepel `makedepends` értékként:

https://aur.archlinux.org/rpc/v5/search/szoftvercsomag?by=makedepends

Keresés callback segítségével:

https://aur.archlinux.org/rpc/v5/search/szoftvercsomag?callback=jsonp1192244621103

info

A szoftvercsomag-információ lekérdezhető a következő formában benyújtott lekérdezések segítségével:

/rpc/v5/info?arg%5B%5D=pkg1&arg%5B%5D=pkg2&…

Ahol pkg1, pkg2, … a szoftvercsomagnevek pontos egyezései, amelyekhez a szoftvercsomagrészleteket le kell kérdezni.

A multiinfo és error a lehetséges visszatérési típusok.

Példák:

Egyetlen szoftvercsomag információja:

https://aur.archlinux.org/rpc/v5/info?arg[]=package

Több szoftvercsomag információja:

https://aur.archlinux.org/rpc/v5/info?arg[]=pkg1&arg[]=pkg2

Visszatérési típusok

A visszatérési hasznos adat egyetlen formátumú, és jelenleg három fő típust tartalmaz. A válasz mindig tartalmaz egy típust, amely alapján a felhasználó eldöntheti, hogy egy művelet eredménye hiba volt-e vagy sem.

A visszatérési hasznos adat formátuma a következő:

{"version":5,"type":ReturnType,"resultcount":0,"results":ReturnData}

A ReturnType egy string, és az értéke az alábbiak egyike:

  • search
  • multiinfo
  • error

return data

A ReturnData típusa szótár (dictionary) objektumok tömbje a search és multiinfo ReturnType esetén, valamint üres tömb az error ReturnType esetén.

A ReturnType search esetén a ReturnData a következő mezőket tartalmazhatja:

  • ID
  • Name
  • PackageBaseID
  • PackageBase
  • Version
  • Description
  • URL
  • NumVotes
  • Popularity
  • OutOfDate
  • Maintainer
  • FirstSubmitted
  • LastModified
  • URLPath

A ReturnType info és multiinfo esetén a ReturnData ezen felül a következő mezőket is tartalmazhatja:

  • Depends
  • MakeDepends
  • OptDepends
  • CheckDepends
  • Conflicts
  • Provides
  • Replaces
  • Groups
  • License
  • Keywords

A szoftvercsomag által nem tartalmazott mezők kimaradnak a kimenetből.

error

Az error típusú válasz visszatérési értéke egy hibaválasz-string. Hibaválasz adható vissza akár search, akár info lekérdezéstípus esetén.

Példa a ReturnType error típusra:

{"version":5,"type":"error","resultcount":0,"results":[],"error":"Incorrect by field specified."}

search

A search típus a keresési lekérdezési művelet által visszaadott eredmény.

Példa a ReturnType search típusra:

{"version":5,"type":"search","resultcount":2,"results":[{"ID":206807,"Name":"cower-git", ...}]}

info

Az info típus az info lekérési művelet által visszaadott eredmény.

Példa a ReturnType multiinfo típusra:

 {
    "version":5,
    "type":"multiinfo",
    "resultcount":1,
    "results":[{
        "ID":229417,
        "Name":"cower",
        "PackageBaseID":44921,
        "PackageBase":"cower",
        "Version":"14-2",
        "Description":"A simple AUR agent with a pretentious name",
        "URL":"http:\/\/github.com\/falconindy\/cower",
        "NumVotes":590,
        "Popularity":24.595536,
        "OutOfDate":null,
        "Maintainer":"falconindy",
        "FirstSubmitted":1293676237,
        "LastModified":1441804093,
        "URLPath":"\/cgit\/aur.git\/snapshot\/cower.tar.gz",
        "Depends":[
            "curl",
            "openssl",
            "pacman",
            "yajl"
        ],
        "MakeDepends":[
            "perl"
        ],
        "License":[
            "MIT"
        ],
        "Keywords":[]
    }]
 }
 

jsonp

Ha Ön egy JavaScript alapú oldalon dolgozik, és JSON visszahívási (callback) mechanizmusra van szüksége, akkor ezt megteheti. Önnek csupán egy további callback változót kell megadnia. Ezt a callback változót általában a JavaScript függvénykönyvtár kezeli, de itt látható egy példa is.

Példa a lekérdezésre:

https://aur.archlinux.org/rpc/v5/search/foobar?callback=jsonp1192244621103

Példa a visszatérésre:

/**/jsonp1192244621103({"version":5,"type":"search","resultcount":1,"results":[{"ID":250608,"Name":"foobar2000","PackageBaseID":37068,"PackageBase":"foobar2000","Version":"1.3.9-1","Description":"An advanced freeware audio player (uses Wine).","URL":"http:\/\/www.foobar2000.org\/","NumVotes":39,"Popularity":0.425966,"OutOfDate":null,"Maintainer":"supermario","FirstSubmitted":1273255356,"LastModified":1448326415,"URLPath":"\/cgit\/aur.git\/snapshot\/foobar2000.tar.gz"}]})

Ez automatikusan meghívja a jsonp1192244621103 JavaScript függvényt, amelynek paramétere az RPC hívás eredményére lesz beállítva.

Korlátozások

  • A HTTP GET kérések legfeljebb 8190 bájt hosszúságú URI azonosítóra korlátozódnak. Azonban a hivatalos AUR példány, amely nginx szerveren HTTP/2 protokollt használ, az alapértelmezett URI-hossz korlátját alkalmazza, amely 4443 bájt. A 200-nál több szoftvercsomagot tartalmazó info kéréseket fel kell osztani.
  • A keresési lekérdezéseknek legalább kettő karakter hosszúnak kell lenniük.
  • A keresések meghiúsulnak, amikor 5000 vagy annál több találatot tartalmaznak.
  • Az API-kérés limit napi legfeljebb 4000 kérés IP-címenként.
Megjegyzés Egyes adatok a kötegelt feldolgozáshoz elérhetők az AUR metadata archives oldalon

Referenciakliensek

Néha könnyebben érthetők a dolgok példákon keresztül. Néhány referenciaimplementáció (jQuery, python2, ruby) a régi specifikációhoz, valamint a "v" paraméter megadása nélkül elérhető itt.

A /rpc v5 API implementáció új, útvonalalapú verziója a Python 3.12 verziójához elérhető itt.

AUR metadata archívumok

A már meglévő archívumok mellett kettő új archívum került bevezetésre, amelyek a tömeges RPC-lekérdezések helyett használhatók. Az összes archívum letölthető a https://aur.archlinux.org/archive-name.gz helyről

Ezen archívumok használata jelentősen csökkenti az AUR terhelését az API-kliensprogramok által generált forgalom mennyiségében. Különösen azoknál a kliensprogramoknál hasznos, amelyek képesek tömegesen, saját maguk lekérdezni az adatokat.

Minden archívum támogatja a Last-Modified és ETag mezőket. Az egyes archívumok hozzávetőlegesen 5 perces időközönként frissülnek. Minden RPC-tömeghasználótól kérjük, hogy fontolja meg ezen archívumok használatát az ismétlődő keresések vagy tömeges "multiinfo" kérések esetén.

Meglévő archívumok

Metaadat-archívumok

További olvasnivaló a témában

Az API dokumentációja: https://aur.archlinux.org/rpc/swagger