Aurweb RPC interface (Magyar) - ArchWiki

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.

További oldalak az adott témakörben

- Official repositories web interface (Magyar)

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

#### search

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

- Az összes szoftvercsomag listázása, sortöréssel elválasztva: https://aur.archlinux.org/packages.gz
- Az összes szoftvercsomagbázis listázása, sortöréssel elválasztva: https://aur.archlinux.org/pkgbase.gz
- Az összes felhasználó figyelése, sortöréssel elválasztva: https://aur.archlinux.org/users.gz

### Metaadat-archívumok

- Teljes, `type=search` formátumú JSON szoftvercsomag-archívum: https://aur.archlinux.org/packages-meta-v1.json.gz
- Teljes, `type=multiinfo` formátumú JSON szoftvercsomag-archívum: https://aur.archlinux.org/packages-meta-ext-v1.json.gz

## További olvasnivaló a témában

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

Categories:

- Package management (Magyar)
- Arch projects (Magyar)

Aurweb RPC interface (Magyar)
Add topic