Я хочу создать развертывание шлюза API из файла swagger.yml. Мне нужно поддерживать CORS для всех конечных точек. Все мои определения пути options
абсолютно одинаковы. Как определить путь options
в одном месте и $ref
там, где я хочу его использовать?
Я надеялся сделать что-то вроде этого (обратите внимание на $ref: '#/definitions/CorsOptions'
на том же уровне, что и get
):
---
swagger: "2.0"
info:
version: "2016-10-26T03:15:31Z"
title: "corstest"
host: ""
basePath: ""
schemes:
- "https"
paths:
/page:
get:
produces:
- "application/json"
responses:
200:
description: "200 response"
schema:
$ref: "#/definitions/Empty"
headers:
Access-Control-Allow-Origin:
type: "string"
x-amazon-apigateway-integration:
responses:
default:
statusCode: "200"
responseParameters:
method.response.header.Access-Control-Allow-Origin: "'*'"
uri: "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:1234:function:myLambdaFunc/invocations"
passthroughBehavior: "when_no_match"
httpMethod: "GET"
type: "aws_proxy"
$ref: '#/definitions/CorsOptions'
definitions:
Empty:
type: "object"
title: "Empty Schema"
CorsOptions:
options:
consumes:
- "application/json"
produces:
- "application/json"
responses:
200:
description: "200 response"
schema:
$ref: "#/definitions/Empty"
headers:
Access-Control-Allow-Origin:
type: "string"
Access-Control-Allow-Methods:
type: "string"
Access-Control-Allow-Headers:
type: "string"
Cache-Control:
type: "string"
x-amazon-apigateway-integration:
responses:
default:
statusCode: "200"
responseParameters:
method.response.header.Access-Control-Allow-Methods: "'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT'"
method.response.header.Access-Control-Allow-Headers: "'Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token'"
method.response.header.Access-Control-Allow-Origin: "'*'"
requestTemplates:
application/json: "{\"statusCode\": 200}"
passthroughBehavior: "when_no_match"
type: "mock"
Этот yaml не проходит проверку swagger. Как я могу выполнить то, что я пытаюсь сделать, чтобы мой файл yaml не был огромным и раздутым с тем же определением пути options
.
спецификация swagger поддерживает $ref
как path item object
, однако я не могу понять, где я могу поместить это определение объект элемента пути. Я думаю, что импорт swagger API Gateway ограничивает извлечение yaml
файлов из других мест, но я не уверен на 100%.