使用无服务器从Swagger UI隐藏OPTIONS端点

时间:2019-08-05 07:39:54

标签: node.js typescript swagger-ui serverless

我为无服务器YAML文件中的每个端点设置了cors:true。但是,我不想在摇摇欲坠的UI中显示“ OPTIONS”端点。我正在使用无服务器框架,下面是示例端点的代码:

sample name:
    handler: path/to/the/handler/
    events:
      - http:
          path: v1/sample
          method: get
          cors: true
          private: true
          documentation:
            summary: "summary of the endpoint"
            methodResponses:
              - statusCode: "200"
                responseBody:
                  description: "response body"
                responseModels:
                  "application/json": "response model"

我希望即使启用了CORS,选项也不应在Swagger UI上可见。

1 个答案:

答案 0 :(得分:1)

从技术上讲,OPTIONS方法端点是CORS正常运行所必需的,因为它是Preflight request中使用的方法来检查CORS的生存能力。

AWS Swagger导出确实以相当侵入性的方式包含了OPTIONS端点。如果您不希望在Swagger UI中使用它,我建议您从API Gateway导出后,以编程方式从Swagger文件中过滤OPTIONS端点,然后再将其用于Swagger UI(取决于您构造Swagger UI的方式) )。