问题描述
我正在使用 Flask 和 connexion 构建 REST API。 (Python)
我正在使用包含所有端点、方法等定义的 swagger.yml 文件将 api 添加到 connexion 应用程序中...
问题是,如何为特定资源/路由/呼叫添加速率限制?
我似乎无法在文档中找到它。
谢谢。
解决方法
您可以将 X-Rate-Limit-* HTTP 标头与 http 429 状态代码一起使用。
这实际上在 openapi 中看起来像:
....
responses:
"200":
description: Success response
content:
application/json:
schema:
$ref: "#/components/schemas/YourResponseModel"
headers:
"X-Rate-Limit-Limit": {
"description": "The number of allowed requests in the current period","schema": {
"type": "integer"
}
},"X-Rate-Limit-Remaining": {
"description": "The number of remaining requests in the current period","X-Rate-Limit-Reset": {
"description": "The number of seconds left in the current period","schema": {
"type": "integer"
}
}
"429":
description: Too many requests
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorMessageResponse"
....