Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Data API Builder (DAB) GraphQL-végpontjai lehetővé teszik az adatok pontos lekérdezését és módosítását. Minden lekérdezés pontosan meghatározza, hogy milyen mezőkre van szüksége, és támogatja a szűrési, rendezési és lapozási eredmények argumentumait.
Alapértelmezés szerint a DAB a GraphQL-végpontját a következő helyen tárolja:
https://{base_url}/graphql
A konfigurációval közzétett entitások automatikusan bekerülnek a GraphQL-sémába.
Ha például vannak books és authors entitások, mindkettő gyökérmezőként jelenik meg a sémában.
Megjegyzés:
Bármely modern GraphQL-ügyfél vagy IDE (például az Apolló, az Insomnia vagy a VS Code GraphQL) használatával feltárhatja a sémát és automatikusan kitöltheti a mezőket.
A Data API Builderben támogatott kulcsszavak
| Concept | GraphQL | Cél |
|---|---|---|
| Projection | Elemek | Adja meg, hogy mely mezőket adja vissza |
| Filtering | szűrő | Sorok korlátozása feltétel szerint |
| Rendezés | orderBy | Rendezési sorrend meghatározása |
| Oldalméret | first | Az elemek korlátozása oldalanként |
| Folytatás | után | Folytatás az utolsó oldalról |
Alapszintű struktúra
Minden GraphQL-lekérdezés egy entitást jelképező gyökérmezővel kezdődik.
{
books {
items {
id
title
price
}
}
}
Az eredmény egy olyan JSON-objektum, amelynek alakzata megegyezik a kijelölési csoportéval:
{
"data": {
"books": {
"items": [
{ "id": 1, "title": "Dune", "price": 20 },
{ "id": 2, "title": "Foundation", "price": 18 }
]
}
}
}
Megjegyzés:
Alapértelmezés szerint a DAB lekérdezésenként legfeljebb 100 elemet ad vissza, kivéve, ha másként van konfigurálva (runtime.pagination.default-page-size).
Lekérdezéstípusok
Mindegyik entitás két szabványos gyökér lekérdezést támogat:
| Query | Leírás |
|---|---|
entity_by_pk |
Egy rekordot ad vissza az elsődleges kulcsa alapján |
entities |
A szűrőknek megfelelő rekordok listáját adja vissza |
Példa egy rekord visszaadására:
{
book_by_pk(id: 1010) {
title
year
}
}
Több értéket visszamutató példa:
{
books {
items {
id
title
}
}
}
Eredmények szűrése
filter Az argumentum használatával korlátozhatja, hogy mely rekordokat adja vissza a rendszer.
{
books(filter: { title: { contains: "Foundation" } }) {
items { id title }
}
}
Ez a lekérdezés az összes olyan könyvet visszaadja, amelynek a címe "Foundation" (Alapozás) címet tartalmazza.
A szűrők kombinálhatják a logikai operátorokkal való összehasonlítást:
{
authors(filter: {
or: [
{ first_name: { eq: "Isaac" } }
{ last_name: { eq: "Asimov" } }
]
}) {
items { first_name last_name }
}
}
Tekintse meg a támogatott operátorok szűrőargumentum-hivatkozását, például eq: , neq, ltlteés isNull.
Találatok rendezése
Az orderBy argumentum határozza meg a rekordok rendezésének módját.
{
books(orderBy: { year: DESC, title: ASC }) {
items { id title year }
}
}
Ez visszaadja a year szerint csökkenő sorrendben, majd a title alapján rendezett könyveket.
További részletekért tekintse meg az orderBy argumentumra vonatkozó hivatkozást .
Eredmények korlátozása
Az first argumentum korlátozza, hogy egy kérelem hány rekordot ad vissza.
{
books(first: 5) {
items { id title }
}
}
Ez az első öt könyvet adja vissza, alapértelmezés szerint az elsődleges kulcs szerint rendezve.
A konfigurált maximális oldalméretet is kérheti first: -1 .
További információ az első argumentumhivatkozásban.
Folyamatos eredmények
A következő lap beolvasásához használja az after argumentumot az előző lekérdezés kurzorával.
{
books(first: 5, after: "eyJpZCI6NX0=") {
items { id title }
}
}
A after token jelzi, hogy hol végződött az előző oldal.
További részletekért tekintse meg az argumentumra vonatkozó hivatkozást.
Mezőválasztás (projekció)
A GraphQL-ben pontosan kiválaszthatja, hogy mely mezők jelenjenek meg a válaszban.
Nincs olyan helyettesítő karakter, mint a SELECT *. Csak azt kérje, amire szüksége van.
{
books {
items { id title price }
}
}
Aliasokkal is átnevezheti a mezőket a válaszban:
{
books {
items {
bookTitle: title
cost: price
}
}
}
Részletekért lásd a mezővetítési referenciát .