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.
Megjegyzés:
Az ebben a szakaszban ismertetett Data API Builder 2.0 funkció jelenleg előzetes verzióban érhető el, és az általános rendelkezésre állás előtt változhat. További információ: A 2.0-s verzió újdonságai.
Az OpenAPI specifikáció egy nyelvfüggetlen szabvány a HTTP API-k dokumentálására. A Data API Builder a következővel támogatja az OpenAPI-t:
- Metaadatok létrehozása a futtatókörnyezet konfigurációjában definiált összes REST-kompatibilis entitáshoz
- Metaadatok összeállítása érvényes OpenAPI-sémába
- A séma megjelenítése vizuális felhasználói felületen (Swagger) vagy szerializált JSON-fájlként
- A séma szűrése, hogy csak az adott szerepkörhöz elérhető HTTP-metódusok és mezők jelenjenek meg
OpenAPI leírási dokumentum
A Data API Builder egy OpenAPI-leíró dokumentumot hoz létre az egyes REST-kompatibilis entitások futtatókörnyezeti konfigurációjának és adatbázis-metaadatainak használatával.
A séma a OpenAPI.NET SDK használatával készült, és megfelel az OpenAPI 3.0.1-s specifikációjának. JSON-dokumentumként jelenik meg.
Az OpenAPI-dokumentum a következő címen érhető el:
GET /{rest-path}/openapi
Megjegyzés:
Alapértelmezés szerint a rest-path értéke api. Ez az érték konfigurálható. Részletekért lásd a REST-konfigurációt .
Engedélyérzékeny OpenAPI
A DAB 2.0-tól kezdve az OpenAPI-dokumentum az egyes entitásokhoz konfigurált tényleges engedélyeket tükrözi. Minden lehetséges HTTP-metódus dokumentálása helyett a létrehozott séma csak azokat a metódusokat és mezőket jeleníti meg, amelyekhez egy adott szerepkör hozzáfér.
A HTTP-metódusokhoz kapcsolódó engedélyek leképezése
A DAB az entitásengedélyeket HTTP-metódusok láthatóságára fordítja le az OpenAPI-dokumentumban:
| Engedélyezési művelet | Megjelenített HTTP-módszerek |
|---|---|
read |
GET |
create |
POST |
create + update |
PUT, PATCH |
delete |
DELETE |
Ha például a anonymous szerepkör csak read engedéllyel rendelkezik az Book entitásra vonatkozóan, a névtelen szerepkörre vonatkozó OpenAPI-dokumentum csak a /api/Book bizonyos GET műveleteket jeleníti meg. A POST, PUT, PATCHés DELETE a műveletek teljes egészében ki vannak hagyva.
Mezőszintű szűrés
Ha az engedélyek mezőszintet include vagy exclude szabályokat tartalmaznak, az OpenAPI-séma ezeket a korlátozásokat tükrözi. A kérelem- és válaszsémákban csak a szerepkör számára elérhető mezők jelennek meg. Ez a szűrés pontos képet ad a felhasználóknak arról, hogy az API mit fogad el és mit ad vissza az ő szerepük szerint.
Szerepkörspecifikus OpenAPI-elérési utak
A DAB szerepkörspecifikus OpenAPI-végpontokat biztosít, így bármilyen konfigurált szerepkört megvizsgálhat a sémában:
GET /{rest-path}/openapi
GET /{rest-path}/openapi/anonymous
GET /{rest-path}/openapi/authenticated
GET /{rest-path}/openapi/admin
Az alap /openapi elérési út az alapértelmezett névtelen nézetet adja vissza. Minden szerepkörspecifikus elérési út egy olyan sémát ad vissza, amely az adott szerepkör engedélyeinek szűrve van.
Fontos
A szerepkörspecifikus OpenAPI-útvonalak (/openapi/{role}) csak fejlesztési módban érhetők el. Éles módban ezek a végpontok le vannak tiltva a szerepkör-számbavétel megakadályozása érdekében. Éles módban csak az alap /openapi elérési út érhető el.
Megjegyzés:
A szerepkörspecifikus végpont akkor 404 Not Found ad vissza, ha a szerepkör nem rendelkezik a futtatókörnyezet konfigurációjában bárhol konfigurált entitásengedélyekkel. Csak azok a szerepkörök hoznak létre OpenAPI-dokumentumot, amelyek legalább egy permissions bejegyzéssel rendelkeznek legalább egy entitáson.
Example
Fontolja meg ezt az engedélykonfigurációt:
{
"entities": {
"Book": {
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "read",
"fields": { "include": ["id", "title", "year"] }
}
]
},
{
"role": "authenticated",
"actions": ["create", "read", "update", "delete"]
}
]
}
}
}
Ezzel a konfigurációval:
-
/api/openapi/anonymouscsakGET /api/Bookválaszmezőkkelidéstitleyear. -
/api/openapi/authenticatedmegjeleníti aGET,POST,PUT,PATCHésDELETEműveleteket az/api/Bookösszes mezőjén.
Swagger felhasználói felület
A Swagger felhasználói felülete interaktív, webes nézetet biztosít az API-ról az OpenAPI-séma alapján.
Módban Development a Data API Builder a következő helyen teszi elérhetővé a Swagger felhasználói felületét:
GET /swagger
Ez a végpont nincs beágyazva a rest-path alá, hogy elkerüljük a felhasználó által definiált entitásokkal való ütközéseket.