Définitions OpenAPI d'un exemple d'API avec validation de demande de base - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Définitions OpenAPI d'un exemple d'API avec validation de demande de base

Les définitions OpenAPI suivantes concernent un exemple d'API avec une validation de demande de base activée. L'API PetStore est un sous-ensemble de l'API . Elle expose une méthode POST pour l'ajout d'un animal de compagnie à la collection pets et d'une méthode GET pour interroger les animaux de compagnie par un type spécifié.

Deux valideurs de demande sont déclarés dans la mappe x-amazon-apigateway-request-validators au niveau de l'API. Le valideur params-only est activé sur l'API et hérité par la méthode GET. Ce valideur autorise API Gateway à vérifier que le paramètre de requête obligatoire (q1) est inclus et non vide dans la demande entrante. Le valideur all est activé sur la méthode POST. Ce valideur vérifie que le paramètre d'en-tête obligatoire (h1) est défini et non vide. Il vérifie également que le format de charge utile est conforme au RequestBodyModel spécifié. Si aucun type de contenu correspondant n'est trouvé, la validation de demande n'est pas effectuée. Lorsque vous utilisez un modèle pour valider le corps et qu'aucun type de contenu correspondant n'est trouvé, la validation de demande n'est pas effectuée. Pour utiliser le même modèle quel que soit le type de contenu, spécifiez $default comme clé.

Ce modèle exige que l'objet JSON en entrée contienne les propriétés name, type et price. La propriété name peut être une chaîne, type doit être l'un de champs d'énumération spécifiés (["dog", "cat", "fish"]) et price doit être compris entre 25 et 500. Le paramètre id n'est pas obligatoire.

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": { } } } }