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 KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint
Az API importálása során előfordulhat, hogy korlátozásokat tapasztal, vagy azonosítania és kijavítania kell a problémákat, mielőtt sikeresen importálhatná azokat. Ebben a cikkben a következőt fogja elsajátítani:
- Az API Management viselkedése az OpenAPI-importálás során.
- Az OpenAPI importálási korlátozásai és az OpenAPI-exportálás működése.
- A WSDL- és WADL-importálásra vonatkozó követelmények és korlátozások.
API Management az OpenAPI importálása során
Az OpenAPI-importálás során az API Management:
- Kifejezetten kötelezőként megjelölt lekérdezési string-paramétereket keres.
- Alapértelmezés szerint a szükséges lekérdezési sztringparamétereket a szükséges sablonparaméterekké alakítja.
Ha azt szeretné, hogy a specifikációban szereplő szükséges lekérdezési paraméterek le legyenek fordítva a lekérdezési paraméterekre az API Managementben, tiltsa le a Lekérdezési paraméterek belefoglalása műveletsablonok beállításba az API portálon való létrehozásakor. Az API „Létrehozás vagy frissítés” REST API-jának használatával is elvégezheti ezt, ha az API translateRequiredQueryParameters
tulajdonságát query
-re állítja.
GET, HEAD és OPTIONS műveletek esetén az API Management elveti a kérelem törzsparaméterét, ha az OpenAPI-specifikációban van definiálva.
OpenAPI/Swagger importálási korlátozások
Ha hibaüzenetet kap az OpenAPI-dokumentum importálása közben, ellenőrizze, hogy korábban ellenőrizte-e a dokumentumot az alábbiak valamelyikével:
- Az Azure Portalon lévő tervező használata (Design > Front End > OpenAPI Specification Editor), vagy
- Külső eszközzel, például Swagger Editorral.
Általános
AZ URL-sablon követelményei
Követelmény | Leírás |
---|---|
A szükséges elérési utak és lekérdezési paraméterek egyedi nevei | Az OpenAPI-ban:
|
Definiált URL-paraméter | Az URL-sablon részét kell képeznie. |
Elérhető forrásfájl URL-címe | Relatív szerver URL-ekre alkalmazva. |
\$ref Mutatók |
Nem lehet külső fájlokra hivatkozni. |
OpenAPI-specifikációk
Támogatott verziók
Az API Management csak a következőket támogatja:
- OpenAPI 2-es verzió
- OpenAPI 3.0.x-es verzió (a 3.0.3-ig)
- OpenAPI 3.1-es verzió (csak importálás)
Méretkorlátozások
Méretkorlát | Leírás |
---|---|
Legfeljebb 4 MB | OpenAPI-specifikáció beágyazott importálása az API Managementbe. |
Az Azure Resource Manager API kérésmérete | Ha egy OpenAPI-dokumentumot egy URL-címen keresztül ad meg egy, az API Management szolgáltatásból elérhető helyre. Tekintse meg az Azure-előfizetés korlátait. |
Támogatott bővítmények
Az egyetlen támogatott bővítmények a következők:
Kiterjesztés | Leírás |
---|---|
x-ms-paths |
|
x-servers |
Az OpenAPI 3 objektum visszaportolása az OpenAPI 2-höz. |
Nem támogatott bővítmények
Kiterjesztés | Leírás |
---|---|
Recursion |
Az API Management nem támogatja a rekurzívan definiált definíciókat. Például a sémák magukra hivatkoznak. |
Server tárgy |
Az API-művelet szintjén nem támogatott. |
Produces kulcsszó |
Az API által visszaadott MIME-típusokat ismerteti. Nem támogatott. |
Egyéni bővítmények
- Az importáláskor figyelmen kívül maradnak.
- Nincsenek mentve vagy megőrizve exportálásra.
Nem támogatott definíciók
Az API-műveletek beágyazott sémadefiníciói nem támogatottak. Sémadefiníciók:
- Az API-hatókörben vannak definiálva.
- Az API műveletek kérésének vagy válaszának hatókörében hivatkozhat.
Figyelmen kívül hagyott definíciók
A rendszer figyelmen kívül hagyja a biztonsági definíciókat.
Definíciós korlátozások
Lekérdezési paraméterek importálásakor csak az alapértelmezett tömb szerializálási módszer (style: form
, explode: true
) támogatott. Az OpenAPI-specifikációk lekérdezési paramétereivel kapcsolatos további részletekért tekintse meg a szerializálási specifikációt.
A cookie-kban definiált paraméterek nem támogatottak. Továbbra is használhatja a szabályzatot a cookie-k tartalmának dekódolására és ellenőrzésére.
OpenAPI 2-es verzió
Az OpenAPI 2-es verziójának támogatása csak JSON-formátumra korlátozódik.
Az "Űrlap" típusú paraméterek nem támogatottak . A szabályzatot továbbra is használhatja application/x-www-form-urlencoded
és application/form-data
hasznos adatok dekódolásához és ellenőrzéséhez.
OpenAPI 3.x-es verzió
Az API Management a következő specifikációs verziókat támogatja:
- OpenAPI 3.0.3
- OpenAPI 3.1.0 (csak importálás)
HTTPS URL-címek
- Ha több
servers
van megadva, az API Management az első megtalált HTTPS-URL-címet fogja használni. - Ha nincsenek HTTPS URL-címek, a kiszolgáló URL-címe üres.
Támogatott
example
Nem támogatott
A következő mezők az OpenAPI 3.0.x vagy az OpenAPI 3.1.x-es verziójában találhatók, de nem támogatottak:
Objektum | Mező |
---|---|
OpenAPI | externalDocs |
Információ | summary |
Összetevők |
|
Elérési út |
|
Művelet |
|
Paraméter |
|
Kiszolgálói sablonozás |
|
OpenAPI importálási, frissítési és exportálási mechanizmusok
Általános
Az API Management szolgáltatásból exportált API-definíciók a következők:
- Elsősorban olyan külső alkalmazásokhoz készült, amelyeknek meg kell hívniuk az API Management szolgáltatásban üzemeltetett API-t.
- Nem importálható ugyanabba a vagy más API Management szolgáltatásba.
Az API-definíciók különböző szolgáltatások/környezetek közötti konfigurálásához tekintse meg az API Management szolgáltatás Gittel való használatával kapcsolatos dokumentációt.
Új API hozzáadása OpenAPI-importáláson keresztül
Az OpenAPI-dokumentumban található minden művelethez létrejön egy új művelet a következőkkel:
Az Azure-erőforrás neve a következőre
operationId
van állítva: .-
operationId
az érték normalizálva van. - Ha
operationId
nincs megadva (nem jelenik meg vagynull
üres), az Azure-erőforrásnév-érték a HTTP-metódus és az elérésiút-sablon kombinálásával jön létre.- Például:
get-foo
.
- Például:
-
A megjelenítendő név beállítva
summary
.-
summary
érték:- Importálva változtatás nélkül.
- A hossz legfeljebb 300 karakter hosszúságú lehet.
- Ha
summary
nincs megadva (nincs megadva,null
vagy üres), a megjelenítendő név értéke a következő leszoperationId
: .
-
Normalizálási szabályok a következőhöz: operationId
- Konvertálás kisbetűssé.
- Cserélje le a nem alfanumerikus karakterek sorozatait egyetlen kötőjelre.
- Például
GET-/foo/{bar}?buzz={quix}
átalakulget-foo-bar-buzz-quix-
-vé.
- Például
- Vágja le a kötőjeleket mindkét oldalon.
- Például:
get-foo-bar-buzz-quix-
válikget-foo-bar-buzz-quix
- Például:
- Rövidítse 76 karakterre, ami négy karakterrel kevesebb, mint egy erőforrásnév maximális határa.
- Ha szükséges, használjon egy további négy karakterből álló utótagot a duplikáció elkerülésére
-1, -2, ..., -999
alakban.
Meglévő API frissítése OpenAPI-importáláson keresztül
Az importálás során a meglévő API-művelet:
- Az OpenAPI-dokumentumban leírt API-val megegyező módosítások.
- Megegyezik az OpenAPI-dokumentumban lévő művelettel úgy, hogy annak
operationId
értékét összehasonlítja a meglévő művelet Azure-erőforrás nevével.- Ha talál egyezést, a meglévő műveletnek a tulajdonságai helyben frissülnek.
- Ha nem található egyezés:
- Egy új művelet jön létre a HTTP-metódus és az elérésiút-sablon kombinálásával, például
get-foo
. - Minden új művelet esetében az importálás megkísérli a szabályzatok másolását egy meglévő műveletből ugyanazzal a HTTP-metódussal és elérésiút-sablonnal.
- Egy új művelet jön létre a HTTP-metódus és az elérésiút-sablon kombinálásával, például
A rendszer minden meglévő nem egyező műveletet töröl.
Az importálás kiszámíthatóbbá tétele érdekében kövesse az alábbi irányelveket:
- Minden művelethez adjon meg
operationId
tulajdonságot. - A kezdeti importálás után tartózkodjon a módosítástól
operationId
. - Soha ne módosítsa egyszerre a
operationId
, valamint a HTTP-metódust és az elérési út sablont.
Normalizálási szabályok a következőhöz: operationId
- Konvertálás kisbetűssé.
- Cserélje le a nem alfanumerikus karakterek sorozatait egyetlen kötőjelre.
- Például
GET-/foo/{bar}?buzz={quix}
átalakulget-foo-bar-buzz-quix-
-vé.
- Például
- Vágja le a kötőjeleket mindkét oldalon.
- Például:
get-foo-bar-buzz-quix-
válikget-foo-bar-buzz-quix
- Például:
- Rövidítse 76 karakterre, ami négy karakterrel kevesebb, mint egy erőforrásnév maximális határa.
- Ha szükséges, használjon egy további négy karakterből álló utótagot a duplikáció elkerülésére
-1, -2, ..., -999
alakban.
API exportálása OpenAPI-ként
Minden művelet esetében a következő:
- Az Azure-erőforrásnév exportálva mint
operationId
. - A megjelenítendő nevet
summary
formátumban exportálják.
Vegye figyelembe, hogy a operationId
normalizálása importáláskor történik, és nem exportáláskor.
WSDL
A SOAP átmenő és SOAP-to-REST API-kat WSDL-fájlokkal is létrehozhatja.
SOAP összekapcsolások
- Csak a "document" és a "literál" kódolási stílusú SOAP-kötések támogatottak.
- Nem támogatott az "rpc" stílus vagy a SOAP-kódolás.
Import és beleértendő
A
wsdl:import
,xsd:import
ésxsd:include
irányelvek nem támogatottak. Ehelyett egyesítse a függőségeket egy dokumentumba.Tekintse meg ezt a
wsdl:import
, ha egy nyílt forráskódú eszközt keres axsd:import
,xsd:include
, és függőségek feloldásához és egyesítéséhez egy WSDL fájlban.
WS-* specifikációk
A WS-* specifikációkat tartalmazó WSDL-fájlok nem támogatottak.
Több részből álló üzenetek
Ez az üzenettípus nem támogatott.
WCF wsHttpBinding
- A Windows Communication Foundation szolgáltatással létrehozott SOAP-szolgáltatásoknak a következőt kell használniuk
basicHttpBinding
: -
wsHttpBinding
nem támogatott.
MTOM
- A használt
MTOM
szolgáltatások működhetnek . - A hivatalos támogatást jelenleg nem kínáljuk.
Rekurzió
- A rekurzívan definiált típusokat az API Management nem támogatja.
- Hivatkozzon például egy önmagát tartalmazó tömbre.
Több névtér
Bár egy sémában több névtér is használható, csak a célnévtér használható üzenetrészek definiálására. Ezek a névterek más bemeneti vagy kimeneti elemek definiálására szolgálnak.
A céltól eltérő névterek exportáláskor nem maradnak meg. Bár importálhat egy WSDL-dokumentumot, amely más névterekkel rendelkező üzenetrészeket határoz meg, az összes üzenetrészen megjelenik a WSDL-célnévtér exportálása.
Több végpont
A WSDL-fájlok több szolgáltatást és végpontot (portot) definiálhatnak egy vagy több wsdl:service
elem alapján wsdl:port
. Az API Management-átjáró azonban csak egyetlen szolgáltatásra és végpontra tud kérelmeket importálni és proxyzni. Ha több szolgáltatás vagy végpont van definiálva a WSDL-fájlban, a wsdlSelector tulajdonság használatával azonosítsa a célszolgáltatás nevét és végpontot az API importálásakor.
Tipp
Ha több szolgáltatás és végpont közötti terheléselosztási kérelmeket szeretne kiosztani, érdemes lehet konfigurálni egy elosztott terhelésű háttérkészletet.
Tömbök
A SOAP-to-REST átalakítás csak az alábbi példában látható burkolt tömböket támogatja:
<complexType name="arrayTypeName">
<sequence>
<element name="arrayElementValue" type="arrayElementType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="typeName">
<sequence>
<element name="element1" type="someTypeName" minOccurs="1" maxOccurs="1"/>
<element name="element2" type="someOtherTypeName" minOccurs="0" maxOccurs="1" nillable="true"/>
<element name="arrayElement" type="arrayTypeName" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
WADL
Jelenleg nincsenek ismert WADL-importálási problémák.