我正在尝试将我的烧瓶 api 转发到mydomain.example
终点api.mydomain.example
例如,我的方法ping
会有一个端点api.mydomain.example/v1/server/ping
。但是,我得到的是xx.xxx.xxx.xx:5005/v1/server/ping
端点。
在 SO 中查看其他问题时,我发现了修改app.config['SERVER_NAME']
或添加subdomain
到route
装饰器的建议。但没有任何效果。(当我进行任何这些修改时,我会收到 404 错误)。
这是一个最小的工作示例:
from flask import Flask, Blueprint
from flask_restplus import Resource, Api
app = Flask(__name__)
api = Api(app, version='1.0',
title='My API',
description='An API')
blueprint = Blueprint('api', __name__, url_prefix='/v1')
api.init_app(blueprint)
app.register_blueprint(blueprint)
#app.config['SERVER_NAME'] = 'mydomain.example:5005'
#app.url_map.default_subdomain = "test"
server = api.namespace("server",
description='Server API')
@server.route("/ping") #, subdomain="test")
class Ping(Resource):
def get(self):
"""
Check if Server is still alive
"""
return {"reply":"PONG"}
if __name__ == '__main__':
app.config["SWAGGER_UI_DOC_EXPANSION"] = "list"
app.run(port=5005, host= '0.0.0.0', debug=True)
我去了我的域管理页面 ( name.com
) 并添加了 url 转发。在这种情况下,mydomain.info
转到 swagger 管理页面,但mydomain.example/v1/server/ping
也转到 swagger 管理页面。
但是,我仍然在请求 URL 部分得到 xx.xxx.xxx.xx:5005。
如何使其与子域名一起使用?