OpenAPI-Definitionen einer Beispiel-API mit grundlegender Anforderungsvalidierung - Amazon API Gateway

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

OpenAPI-Definitionen einer Beispiel-API mit grundlegender Anforderungsvalidierung

Die folgende OpenAPI-Definition gilt für eine Beispiel-API mit aktivierter Anforderungsvalidierung. Die PetStore-API ist eine Teilmenge der -API. Mithilfe einer POST-Methode wird ein Haustier zur Sammlung pets hinzugefügt und mit einer GET-Methode erfolgt die Abfrage der Haustiere nach Typ.

In der Zuweisung x-amazon-apigateway-request-validators sind auf API-Ebene zwei Anforderungsvalidierungen deklariert. Die Validierung params-only ist für die API aktiviert und wird von der GET-Methode geerbt. Mit diesem Validator kann API Gateway überprüfen, ob der erforderliche Abfrageparameter (q1) in der eingehenden Anfrage enthalten und nicht leer ist. Die Validierung all ist für die POST-Methode aktiviert. Mit dieser Validierung wird geprüft, ob der erforderliche Header-Parameter (h1) gesetzt und nicht leer ist. Es wird auch überprüft, ob das Payload-Format dem angegebenen RequestBodyModel entspricht. Wenn kein passender Inhaltstyp gefunden wird, wird die Anforderungsüberprüfung nicht durchgeführt. Wenn ein Modell zur Validierung des Textes verwendet wird und kein übereinstimmender Inhaltstyp gefunden wird, wird die Anforderungsvalidierung nicht durchgeführt. Um das gleiche Modell unabhängig vom Inhaltstyp zu verwenden, geben Sie es $default als Schlüssel an.

Bei diesem Modell muss das JSON-Objekt der Eingabe die Eigenschaften name, type und price enthalten. Die Eigenschaft name kann eine beliebige Zeichenfolge sein, type muss einem der angegebenen Aufzählungsfelder (["dog", "cat", "fish"]) entsprechen und price muss zwischen 25 und 500 liegen. Der Parameter id ist nicht erforderlich.

OpenAPI 2.0
{ "swagger": "2.0", "info": { "title": "ReqValidators Sample", "version": "1.0.0" }, "schemes": [ "https" ], "basePath": "/v1", "produces": [ "application/json" ], "x-amazon-apigateway-request-validators" : { "all" : { "validateRequestBody" : true, "validateRequestParameters" : true }, "params-only" : { "validateRequestBody" : false, "validateRequestParameters" : true } }, "x-amazon-apigateway-request-validator" : "params-only", "paths": { "/validation": { "post": { "x-amazon-apigateway-request-validator" : "all", "parameters": [ { "in": "header", "name": "h1", "required": true }, { "in": "body", "name": "RequestBodyModel", "required": true, "schema": { "$ref": "#/definitions/RequestBodyModel" } } ], "responses": { "200": { "schema": { "type": "array", "items": { "$ref": "#/definitions/Error" } }, "headers" : { "test-method-response-header" : { "type" : "string" } } } }, "security" : [{ "api_key" : [] }], "x-amazon-apigateway-auth" : { "type" : "none" }, "x-amazon-apigateway-integration" : { "type" : "http", "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets", "httpMethod" : "POST", "requestParameters": { "integration.request.header.custom_h1": "method.request.header.h1" }, "responses" : { "2\\d{2}" : { "statusCode" : "200" }, "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header" : "'static value'" }, "responseTemplates" : { "application/json" : "json 400 response template", "application/xml" : "xml 400 response template" } } } } }, "get": { "parameters": [ { "name": "q1", "in": "query", "required": true } ], "responses": { "200": { "schema": { "type": "array", "items": { "$ref": "#/definitions/Error" } }, "headers" : { "test-method-response-header" : { "type" : "string" } } } }, "security" : [{ "api_key" : [] }], "x-amazon-apigateway-auth" : { "type" : "none" }, "x-amazon-apigateway-integration" : { "type" : "http", "uri" : "http://petstore-demo-endpoint.execute-api.com/petstore/pets", "httpMethod" : "GET", "requestParameters": { "integration.request.querystring.type": "method.request.querystring.q1" }, "responses" : { "2\\d{2}" : { "statusCode" : "200" }, "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header" : "'static value'" }, "responseTemplates" : { "application/json" : "json 400 response template", "application/xml" : "xml 400 response template" } } } } } } }, "definitions": { "RequestBodyModel": { "type": "object", "properties": { "id": { "type": "integer" }, "type": { "type": "string", "enum": ["dog", "cat", "fish"] }, "name": { "type": "string" }, "price": { "type": "number", "minimum": 25, "maximum": 500 } }, "required": ["type", "name", "price"] }, "Error": { "type": "object", "properties": { } } } }