Reactjs 使用openapi生成器启用CORS

Reactjs 使用openapi生成器启用CORS,reactjs,flask,openapi-generator,connexion,Reactjs,Flask,Openapi Generator,Connexion,因此,我使用生成一个flask服务器来服务于我的api 我在生成运行它的服务器并在浏览器中查看端点方面没有问题。但是,当我从React Web应用程序发出get请求时,我会收到CORS错误 我尝试了一些方法来启用CORS 我尝试将标题添加到.yaml中的端点 /pipelines: get: summary: 'Returns a list of pipelines.' operationId: get_pipelines responses:

因此,我使用生成一个flask服务器来服务于我的api

我在生成运行它的服务器并在浏览器中查看端点方面没有问题。但是,当我从React Web应用程序发出get请求时,我会收到CORS错误

我尝试了一些方法来启用CORS

我尝试将标题添加到.yaml中的端点

/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添加标头并尝试重新生成服务器模块时,出现以下错误:

-attribute paths.'/pipelines'(get).responses.200.Access-Control-Allow-Origin is not of type `object
我还尝试在服务器模块的main.py中安装和导入flask_cors

#!/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示例和中找到了这些修复


然而,正如我所说的,我使用的是openapi生成器,所以它与其他任何一种工具都有点不同,但是我很难找到关于如何正确设置它的任何信息。以前有没有人使用过openapi generator,谁能帮助我?

openapi代码生成器使用了隐藏的库,在他们的文档中,他们建议使用flask_cors请参见:

我目前正在使用从原始版本派生的自定义胡须模板,因此在
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

from flask_cors import CORS
....
CORS(app.app)
app.run(port=.....)
确保安装flask_cors
或将其添加到您的requirements.txt中


另外,您可以使用
generate-t TEMPALTE/FOLDER?LOCATION

OpenApi代码生成器使用引擎盖下的库,在他们的文档中,他们建议使用flask_cors参见:

我目前正在使用从原始版本派生的自定义胡须模板,因此在
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

from flask_cors import CORS
....
CORS(app.app)
app.run(port=.....)
确保安装flask_cors
或将其添加到您的requirements.txt中


另外,您可以使用
generate-t TEMPALTE/FOLDER?位置

是否尝试提供实际链接而不是通配符<代码>标题:访问控制允许来源:'http://localhost:3000/“当我在C语言中尝试它时,它对我很有效。是的,这是我第一次做的,当我尝试生成服务器时,我得到了相同的错误<代码>-属性路径。'/pipelines'(get).responses.200.Access-Control-Allow-Origin不是“object”类型。将记录器添加到flask cors
logging.getLogger('flask_cors')。级别=logging.DEBUG
,然后可以检查问题。将
CORS(app.app)
移动到after
app.run(port=5050)
我将对此进行一次尝试,我目前已经转移到另一个更紧迫的问题上,但一旦我回到这个问题上,我会让您知道它是如何进行的。您是否尝试提供实际链接而不是通配符<代码>标题:访问控制允许来源:'http://localhost:3000/“当我在C语言中尝试它时,它对我很有效。是的,这是我第一次做的,当我尝试生成服务器时,我得到了相同的错误<代码>-属性路径。'/pipelines'(get).responses.200.Access-Control-Allow-Origin不是“object”类型。将记录器添加到flask cors
logging.getLogger('flask_cors')。级别=logging.DEBUG
,然后可以检查问题。将
CORS(app.app)
移动到after
app.run(port=5050)
我会尝试一下,我现在已经转移到另一个更紧迫的问题上,但一旦我回到这个问题上,我会让你知道它是如何进行的。我的团队和我在我问这个问题的时候就解决了这个问题,但这是正确的答案,所以我想我应该把功劳给你!在我问这个问题的时候,我和我的团队终于弄明白了这一点,但这是正确的答案,所以我想我应该给你一个荣誉!