Så här ringer du upp REST-slutpunkter

Data API Builder (DAB) tillhandahåller ett RESTful-webb-API som gör att du kan komma åt tabeller, vyer och lagrade procedurer från en ansluten databas. Varje exponerat databasobjekt definieras som en entitet i körningskonfigurationen.

Som standard är DAB värd för REST-slutpunkter på:

https://{base_url}/api/{entity}

Anmärkning

Alla sökvägskomponenter och frågeparametrar är skiftlägeskänsliga.

Nyckelord som stöds i Data API Builder

Begrepp REST Avsikt
Projection $select Välj vilka fält som ska returneras
Filtering $filter Begränsa rader efter villkor
Sortering $orderby Definiera sorteringsordningen
Sidstorlek $first Begränsa objekten per sida
Fortsättning $after Fortsätt från den sista sidan

Grundläggande struktur

Om du vill anropa ett REST-API skapar du en begäran med det här mönstret:

{HTTP method} https://{base_url}/{rest-path}/{entity}

Exempel på läsning av alla poster från entiteten book :

GET https://localhost:5001/api/book

Svaret är ett JSON-objekt:

{
  "value": [
    { "id": 1, "title": "Dune" },
    { "id": 2, "title": "Foundation" }
  ]
}

Anmärkning

Som standard returnerar DAB upp till 100 objekt per fråga om inget annat har konfigurerats (runtime.pagination.default-page-size).

Frågetyper

Varje REST-entitet har stöd för läsningar av både samling och enskild post.

Verksamhet Beskrivning
GET /api/{entity} Returnerar en lista med dataposter
GET /api/{entity}/{primary-key-column}/{primary-key-value} Returnerar en post efter primärnyckel

Exempel på en funktion som returnerar ett databaspost.

GET /api/book/id/1010

Exempel som returnerar många värden:

GET /api/book

Filtrera resultat

$filter Använd frågeparametern för att begränsa vilka poster som returneras.

GET /api/book?$filter=title eq 'Foundation'

Den här frågan returnerar alla böcker vars titel är lika med "Foundation".

Filter kan innehålla logiska operatorer för mer komplexa frågor:

GET /api/book?$filter=year ge 1970 or title eq 'Dune'

Se referensen för $filter-argumentet för att få information om operatorer som stöds, till exempel eq, ne, lt, le, and och or.

Sorteringsresultat

Parametern $orderby definierar hur poster sorteras.

GET /api/book?$orderby=year desc, title asc

Detta returnerar böcker ordnade efter year fallande, sedan efter title.

Mer information finns i referensen för $orderby argument .

Begränsa resultat {#first-and-after}

Parametern $first begränsar hur många poster som returneras i en begäran.

GET /api/book?$first=5

Detta returnerar de första fem böckerna, ordnade efter primärnyckel som standard. Du kan också använda $first=-1 för att begära den konfigurerade maximala sidstorleken.

Läs mer i argumentreferensen för $first.

Fortsatt resultat

Om du vill hämta nästa sida använder du $after med fortsättningstoken från föregående svar.

GET /api/book?$first=5&$after={continuation-token}

Token $after identifierar var den senaste frågan slutade. Mer information finns i $after argumentreferens .

Fältval (projektion)

Använd $select för att styra vilka fält som ingår i svaret.

GET /api/book?$select=id,title,price

Detta returnerar endast de angivna kolumnerna. Om ett fält saknas eller inte är tillgängligt returnerar 400 Bad RequestDAB .

Mer information finns i $select argumentreferens .

Ändra data

REST-API:et stöder även åtgärder för att skapa, uppdatera och ta bort beroende på entitetsbehörigheter.

Metod Åtgärd
POST Skapa ett nytt objekt
PUT Ersätt ett befintligt objekt (eller skapa om det saknas)
PATCH Uppdatera ett befintligt objekt (eller skapa om det saknas)
DELETE Ta bort ett objekt efter primärnyckel

Exempel på att skapa en ny post:

POST /api/book
Content-type: application/json

{
  "id": 2000,
  "title": "Leviathan Wakes"
}

Exempel på uppdatering av en befintlig post:

PATCH /api/book/id/2000
Content-type: application/json

{
  "year": 2011,
  "pages": 577
}

Exempel på borttagning av en post:

DELETE /api/book/id/2000