2 回答
TA贡献1795条经验 获得超7个赞
希望这可以帮助那些有同样错误但没有找到解决方案的人
要完成@v25给出的答案,您必须通过从 flask_restplus 中的 Ressource 类继承来为您的命名空间提供资源。
以下示例对我有用
环境:
Ubuntu 18.04
蟒蛇 3.7.1
蟒蛇要求:
烧瓶==1.1.2
flask-restplus==0.13.0
工具==0.16.1
源代码:iot.py
from flask_restplus import Namespace,Resource
api_ns = Namespace("iot", description="API.")
@api_ns.route("/tcpserver")
class AdvertiseTcpserver(Resource):
def get(self):
#TODO return the correct ip value
return {"tcpserver": "ip"}
app.py
from .iot import api_ns
from flask import Flask
from flask_restplus import Api
app = Flask(__name__)
_api = Api(app, catch_all_404s=True, version=0.1,
title="REST HTTP API's Gateway",
descrition="REST API gateway")
_api.add_namespace(api_ns, path='/some/prefix')
app.run()
测试命令:
#!/bin/sh
wget localhost:5000/some/prefix/tcpserver
如果这有帮助,请告诉我。
TA贡献1821条经验 获得超6个赞
不要认为这是用flask_restplus
. 查看缩放文档。
您可能正在寻找类似的东西:
iot.py
from flask_restplus import Namespace
api_ns = Namespace("iot", description="API.")
@api_ns.route("/tcpserver", methods=["GET"])
def advertise_tcpserver():
ip = reader.get_server_ip()
return jsonify({"tcpserver": ip})
然后在你的主app.py中:
# other imports
from .iot import api_ns
app = Flask(__name__)
_api = Api(app, catch_all_404s=True, version=0.1,
title="REST HTTP API's Gateway",
descrition="REST API gateway")
_api.add_namespace(api_ns, path='/some/prefix')
此外,您似乎正在使用已停产的 Python 2.7。我建议使用虚拟环境或 docker 升级到最新版本,以免弄乱系统的 python。
添加回答
举报