Fejlécek ellenőrzése

A KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint

A validate-headers szabályzat ellenőrzi a válaszfejléceket az API-sémán.

Fontos

Ha korábban felügyeleti API-verzióval importált egy API-t, előfordulhat, hogy 2021-01-01-previewa validate-headers szabályzat nem működik. Előfordulhat, hogy újra kell importálnia az API-t a felügyeleti API-verzióval vagy újabb verzióval 2021-01-01-preview .

Feljegyzés

Az érvényesítési szabályzat által használható API-séma maximális mérete 4 MB. Ha a séma túllépi ezt a korlátot, az érvényesítési szabályzatok hibát adnak vissza futásidőben. A növeléséhez forduljon az ügyfélszolgálathoz.

Feljegyzés

Állítsa be a szabályzat elemeit és gyermekelemeit a szabályzatutasításban megadott sorrendben. A szabályzat konfigurálásához a portál egy irányított, űrlapalapú szerkesztőt biztosít. További információ az API Management-szabályzatok beállításáról és szerkesztéséről.

Szabályzatutasítás

<validate-headers specified-header-action="ignore | prevent | detect" unspecified-header-action="ignore | prevent | detect" errors-variable-name="variable name">
    <header name="header name" action="ignore | prevent | detect" />
</validate-headers>

Attribútumok

Attribútum Leírás Kötelező Alapértelmezett
specified-header-action Az API-sémában megadott válaszfejlécek esetében végrehajtandó művelet . A szabályzatkifejezések engedélyezettek. Igen n/a
meghatározatlan fejlécművelet Az API-sémában nem megadott válaszfejlécek esetében végrehajtandó művelet . A szabályzatkifejezések engedélyezettek. Igen n/a
errors-variable-name Annak a változónak a neve, amelybe context.Variables naplózni szeretné az érvényesítési hibákat. A szabályzatkifejezések nem engedélyezettek. Nem N.A.

Elemek

Név Leírás Kötelező
header Adjon hozzá egy vagy több elemet az elnevezett fejlécekhez, hogy felülbírálja a válaszok fejléceinek alapértelmezett érvényesítési műveleteit . Nem

Műveletek

A tartalomérvényesítési szabályzatok egy vagy több olyan attribútumot tartalmaznak, amelyek egy műveletet határoznak meg, amelyet az API Management hajt végre egy entitás API-kérésben vagy -válaszban való érvényesítésekor az API-séma alapján.

  • Műveletet lehet megadni az API-sémában szereplő elemekhez, valamint a szabályzattól függően az API-sémában nem szereplő elemekhez.

  • A házirend gyermekelemében megadott művelet felülírja a szülőhöz megadott műveletet.

Elérhető műveletek:

Művelet Leírás
Figyelmen kívül hagyja Érvényesítés kihagyása.
Megakadályozzák Tiltsa le a kérés- vagy válaszfeldolgozást, naplózza a részletes érvényesítési hibát, és küldjön vissza egy hibát. A feldolgozás megszakad az első hibakészlet észlelésekor.
detect Naplóérvényesítési hibák a kérések vagy válaszfeldolgozás megszakítása nélkül.

Használat

Használati megjegyzések

  • Ez a szabályzat csak egyszer használható egy szabályzatszakaszban.

Naplók

A szabályzat végrehajtása során fellépő érvényesítési hibák részleteit a rendszer naplózza a errors-variable-name szabályzat gyökérelemében található attribútumban context.Variables megadott változóba. Ha egy prevent műveletben konfigurálva van, az érvényesítési hiba blokkolja a további kérések vagy válaszok feldolgozását, és a tulajdonságra context.LastError is propagálja.

A hibák vizsgálatához használjon nyomkövetési szabályzatot a környezeti változók hibáinak az Alkalmazás Elemzések való naplózásához.

A teljesítményre gyakorolt hatások

Az érvényesítési szabályzat hozzáadása hatással lehet az API átviteli sebességére. A következő általános alapelvek érvényesek:

  • Minél nagyobb az API-séma mérete, annál alacsonyabb lesz az átviteli sebesség.
  • Minél nagyobb a hasznos adat egy kérelemben vagy válaszban, annál alacsonyabb lesz az átviteli sebesség.
  • Az API-séma mérete nagyobb hatással van a teljesítményre, mint a hasznos adat méretére.
  • A több megabájt méretű API-sémán való érvényesítés bizonyos feltételek mellett kérés- vagy válaszidőkorlátokat okozhat. A hatás hangsúlyosabb a szolgáltatás használat ésfejlesztői szintjeiben.

Javasoljuk, hogy a várt éles számítási feladatokkal végezzen terhelésteszteket az érvényesítési szabályzatok API-átviteli sebességre gyakorolt hatásának felméréséhez.

Példa

<validate-headers specified-header-action="ignore" unspecified-header-action="prevent" errors-variable-name="responseHeadersValidation" />

Ellenőrzési hibák

Az API Management a következő formátumban hoz létre tartalomérvényesítési hibákat:

{
 "Name": string,
 "Type": string,
 "ValidationRule": string,
 "Details": string,
 "Action": string
}

Az alábbi táblázat az érvényesítési szabályzatok összes lehetséges hibáját felsorolja.

  • Részletek: A hibák kivizsgálására használható. Nem nyilvános megosztásra szánták.
  • Nyilvános válasz: Az ügyfélnek visszaadott hiba. Nem szivárognak ki a megvalósítás részletei.

Ha egy érvényesítési szabályzat megadja a prevent műveletet, és hibát okoz, az API management válasza tartalmaz egy HTTP-állapotkódot: 400, ha a szabályzatot a bejövő szakaszban alkalmazza, és 502, amikor a szabályzatot a kimenő szakaszban alkalmazza a rendszer.

Név Típus Érvényesítési szabály Részletek Nyilvános válasz Művelet
tartalom ellenőrzése
RequestBody SizeLimit A kérelem törzse {size} bájt hosszú, és túllépi a (z) {maxSize} bájtok konfigurált korlátját. A kérelem törzse {size} bájt hosszú, és túllépi a {maxSize} bájtok korlátját. észlelés/megelőzés
ResponseBody SizeLimit A válasz törzse {size} bájt hosszú, és túllépi a (z) {maxSize} bájtok konfigurált korlátját. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
{messageContentType} RequestBody Meghatározatlan A(z) {messageContentType} nem meghatározott tartalomtípus nem engedélyezett. A(z) {messageContentType} nem meghatározott tartalomtípus nem engedélyezett. észlelés/megelőzés
{messageContentType} ResponseBody Meghatározatlan A(z) {messageContentType} nem meghatározott tartalomtípus nem engedélyezett. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
ApiSchema Az API sémája nem létezik, vagy nem oldható fel. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
ApiSchema Az API sémája nem határoz meg definíciókat. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
{messageContentType} RequestBody / ResponseBody MissingDefinition Az API sémája nem tartalmazza a(z) {definitionName} definíciót, amely a(z) {messageContentType} tartalomtípushoz van társítva. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
{messageContentType} RequestBody IncorrectMessage A kérelem törzse nem felel meg a(z) {definitionName} definíciónak, amely a(z) {messageContentType} tartalomtípushoz van társítva.

{valError.Message} Sor: {valError.LineNumber}, Pozíció: {valError.LinePosition}
A kérelem törzse nem felel meg a(z) {definitionName} definíciónak, amely a(z) {messageContentType} tartalomtípushoz van társítva.

{valError.Message} Sor: {valError.LineNumber}, Pozíció: {valError.LinePosition}
észlelés/megelőzés
{messageContentType} ResponseBody IncorrectMessage A válasz törzse nem felel meg a(z) {definitionName} definíciónak, amely a(z) {messageContentType} tartalomtípushoz van társítva.

{valError.Message} Sor: {valError.LineNumber}, Pozíció: {valError.LinePosition}
A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
RequestBody ValidationException A kérés törzse nem érvényesíthető a(z) {messageContentType} tartalomtípushoz.

{kivétel részletei}
A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
ResponseBody ValidationException A válasz törzse nem érvényesíthető a(z) {messageContentType} tartalomtípushoz.

{kivétel részletei}
A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
validate-parameters /validate-headers
{paramName} / {headerName} QueryParameter / PathParameter / RequestHeader Meghatározatlan A(z) {elérési út paramétere/ lekérdezési paraméter/ fejléc} {paramName} nem engedélyezett. A(z) {elérési út paramétere/ lekérdezési paraméter/ fejléc} {paramName} nem engedélyezett. észlelés/megelőzés
{headerName} ResponseHeader Meghatározatlan A(z) {headerName} nem megadott fejléc nem engedélyezett. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
ApiSchema Az API sémája nem létezik, vagy nem oldható fel. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
ApiSchema Az API-séma nem határoz meg definíciókat. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
{paramName} QueryParameter / PathParameter / RequestHeader / ResponseHeader MissingDefinition Az API sémája nem tartalmazza a(z) {definitionName} definíciót, amely a(z) {query parameter / path parameter / header} {paramName} paraméterhez van társítva. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
{paramName} QueryParameter / PathParameter / RequestHeader IncorrectMessage A kérelem nem tartalmazhat több értéket a(z) {query parameter/ path parameter / header} {paramName} paraméterhez. A kérelem nem tartalmazhat több értéket a(z) {query parameter/ path parameter / header} {paramName} paraméterhez. észlelés/megelőzés
{headerName} ResponseHeader IncorrectMessage A válasz nem tartalmazhat több értéket a(z) {headerName} fejléchez. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
{paramName} QueryParameter / PathParameter / RequestHeader IncorrectMessage A (z) {query parameter/ path parameter/header} {paramName} értéke nem felel meg a definíciónak.

{valError.Message} Sor: {valError.LineNumber}, Pozíció: {valError.LinePosition}
A(z) {query parameter/ path parameter/header} {paramName} értéke nem felel meg a definíciónak.

{valError.Message} Sor: {valError.LineNumber}, Pozíció: {valError.LinePosition}
észlelés/megelőzés
{headerName} ResponseHeader IncorrectMessage A(z) {headerName} fejléc értéke nem felel meg a definíciónak.

{valError.Message} Sor: {valError.LineNumber}, Pozíció: {valError.LinePosition}
A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
{paramName} QueryParameter / PathParameter / RequestHeader IncorrectMessage A(z) {query parameter/ path parameter/header} {paramName} paraméter értéke nem elemezhető a definíció szerint.

{ex. Üzenet}
A(z) {query parameter/ path parameter/header} {paramName} paraméter értéke nem elemezhető a definíció szerint.

{ex. Üzenet}
észlelés/megelőzés
{headerName} ResponseHeader IncorrectMessage A(z) {headerName} fejléc értéke nem elemezhető a definíció szerint. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
{paramName} QueryParameter / PathParameter / RequestHeader ValidationError {Lekérdezési paraméter / Elérési út paraméter / Fejléc} A(z) {paramName} nem érvényesíthető.

{kivétel részletei}
A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
{headerName} ResponseHeader ValidationError A(z) {headerName} fejléc nem érvényesíthető.

{kivétel részletei}
A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés
validate-status-code
{status-code} StatusCode Meghatározatlan A(z) {status-code} válaszállapotkód nem engedélyezett. A kérést belső hiba miatt nem sikerült feldolgozni. Lépjen kapcsolatba az API tulajdonosával. észlelés/megelőzés

Az alábbi táblázat az érvényesítési hiba összes lehetséges okértékét és a lehetséges üzenetértékeket sorolja fel:

Ok Üzenet
Hibás kérés {Details} a környezeti változóhoz, {Nyilvános válasz} az ügyfélhez
A válasz nem engedélyezett {Details} a környezeti változóhoz, {Nyilvános válasz} az ügyfélhez

A szabályzatok használatával kapcsolatos további információkért lásd: