У меня есть определение API-интерфейса AWS без сервера, написанное на YAML с помощью подключаемого модуля документации без сервера.
Это сформулировано так:
- serverless.yml:
startCreatingItem:
handler: index.startCreatingItem
description: Request a new item
events:
- http:
path: items
method: post
cors: true
private: true
reqValidatorName: 'xMyRequestValidator'
documentation: ${file(./documentation/items/startCreatingItem.yml)}
- startCreatingItem.yml:
summary: "Request a new item"
description: "Item information creation"
tags:
-Items
requestBody:
description: Item to be generated
requestModels:
"application/json": "ItemInfo"
methodResponses:
-
statusCode: "200"
description: "Item creation added"
responseModels:
"application/json": "ItemInfo"
- ItemInfo.json:
{
"type": "object",
"description": "Model representing the item information",
"required": [ "results" ],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "The item identifier"
},
"results": {
"type": "array",
"description": "A list of result identifier to include in the item",
"items": {
"type": "string",
"format": "uuid"
}
},
}
}
Я хотел бы добавить пример модели запроса для объекта ItemInfo, чтобы он отображался на странице Swagger (где разработчик может попробовать некоторые вещи прямо с этой страницы).
Например, я думал о чем-то вроде этого в файле serverless.yml:
startCreatingItem:
handler: index.startCreatingItem
description: Request a new item
events:
- http:
path: items
method: post
cors: true
private: true
reqValidatorName: 'xMyRequestValidator'
documentation: ${file(./documentation/items/startCreatingItem.yml)}
<strong>example : {
results: [
006897b5-e3fc-4358-8c27-cd54dfd53d49,
769e1c03-9136-465b-93ad-90d889245557
]
}</strong>
(но, похоже, это не сработает).
Если у вас есть какие-либо вопросы или замечания, я буду рад ответить вам :)
Заранее благодарю за помощь!