Definisi OpenAPI dari API sampel dengan validasi permintaan dasar - Amazon API Gateway

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Definisi OpenAPI dari API sampel dengan validasi permintaan dasar

Definisi OpenAPI berikut mendefinisikan API sampel dengan validasi permintaan diaktifkan. API adalah bagian dari PetStoreAPI. Ini mengekspos POST metode untuk menambahkan hewan peliharaan ke pets koleksi dan GET metode untuk menanyakan hewan peliharaan dengan jenis tertentu.

Ada dua validator permintaan yang dideklarasikan dalam x-amazon-apigateway-request-validators peta di API level. params-onlyValidator diaktifkan pada API dan diwarisi oleh metode. GET Validator ini memungkinkan API Gateway untuk memverifikasi bahwa parameter kueri yang diperlukan (q1) disertakan dan tidak kosong dalam permintaan masuk. allValidator diaktifkan pada metode. POST Validator ini memverifikasi bahwa parameter header yang diperlukan (h1) disetel dan tidak kosong. Ini juga memverifikasi bahwa format payload mematuhi yang ditentukan RequestBodyModel Jika tidak ada jenis konten yang cocok ditemukan, validasi permintaan tidak dilakukan. Saat menggunakan model untuk memvalidasi isi, jika tidak ada jenis konten yang cocok ditemukan, validasi permintaan tidak dilakukan. Untuk menggunakan model yang sama terlepas dari jenis konten, tentukan $default sebagai kunci.

Model ini mensyaratkan bahwa objek input JSON berisiname,type, dan price properti. nameProperti dapat berupa string apa pun, type harus menjadi salah satu bidang enumerasi yang ditentukan (["dog", "cat", "fish"]), dan price harus berkisar antara 25 dan 500. idParameter tidak diperlukan.

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