首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用openapi生成器启用CORS

用openapi生成器启用CORS
EN

Stack Overflow用户
提问于 2019-11-18 18:46:16
回答 1查看 5.9K关注 0票数 1

所以我使用开式发电机来生成一个烧瓶服务器来服务我的api。

生成服务器、运行服务器和在浏览器中查看端点都没有问题。但是,当我从发出get请求时,我会得到一个CORS错误。

我试了几样东西让CORS。

我尝试在我的.yaml中将头添加到我的端点。

代码语言:javascript
代码运行次数:0
运行
复制
/pipelines:
    get:
      summary: 'Returns a list of pipelines.'
      operationId: get_pipelines
      responses:
        '200':
          description: 'A JSON array of pipelines'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pipeline'
          headers:
            Access-Control-Allow-Origin: '*'
        default:
          description: Unexpected error
          content:
            'application/json':
              schema:
                $ref: '#/components/schemas/ErrorMessage'

当我尝试通过.yaml添加标头并重新生成服务器模块时,我会得到以下错误:

代码语言:javascript
代码运行次数:0
运行
复制
-attribute paths.'/pipelines'(get).responses.200.Access-Control-Allow-Origin is not of type `object

我还尝试在服务器模块的flask_cors主.py中安装和导入。

代码语言:javascript
代码运行次数:0
运行
复制
#!/usr/bin/env python3

import connexion

from openapi_server import encoder
from flask_cors import CORS

def main():
    app = connexion.App(__name__, specification_dir='./openapi/')
    CORS(app.app)
    app.app.json_encoder = encoder.JSONEncoder
    app.add_api('openapi.yaml',
                arguments={'title': 'ICDR API'},
                pythonic_params=True)
    app.run(port=5050)


if __name__ == '__main__':
    main()

我把这两个都试过了。这些修正是我在swagger-codegen petstore.yaml示例和连接子文档中找到的。

然而,正如我所说的,我正在使用openapi生成器,所以它与其他任何一种工具都有一点不同,但我在找到有关如何正确设置这些工具的信息时遇到了很多困难。以前有没有人和openapi生成器合作过谁能帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-04 16:38:04

OpenApi代码生成器使用遮罩下的连接子库,在他们建议使用flask_cors的文档中,请参阅:这里

我目前正在使用自定义胡子模板,从原始分叉,所以在\__main__.mustache中我添加了行

代码语言:javascript
代码运行次数:0
运行
复制
from flask_cors import CORS
....
CORS(app.app)
app.run(port=.....)

确保安装flask_cors或将其添加到requirements.txt中

您可以使用generate ... -t TEMPALTE/FOLDER?LOCATION指定模板位置。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58921020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档