我正在使用python flask创建REST API。 API已准备就绪,可以在我的localhost的端口号8000上运行。现在我打算给这个REST API一个用户友好的界面,我决定使用python - restplus。我想在内部从5000上运行的swagger应用程序调用这个服务(在8000上运行)
我能够创建API的基本结构(Swagger)。代码如下:
import flask
from flask import Flask, request
from flask_restplus import Resource, Api
app = Flask(__name__)
api = Api(app)
@api.route('/HybridComparator/<string:url2>/<string:url1>')
class HybridComparator(Resource):
def get(self, url1, url2):
print(url1)
print(url2)
return url1 + ' ' + url2
if __name__ == '__main__':
app.run(debug=True)
整个应用程序在端口5000上无缝运行(使用随机字符串作为参数)。但是当我传递的URL是实际链接时,应用程序返回404的响应 - 未找到。在我的调查之后,我意识到罪魁祸首是&#39; /&#39;嵌入在我试图提供的链接中。有没有办法特别处理URL?
我应该在发送请求之前对它们进行编码。 (这会让我的参数看起来很难看)。有什么我想念的吗?
答案 0 :(得分:0)
@api.route('/HybridComparator/<path:url2>/<path:url1>')
应该修复它,它修复了404,但我只得到了#34; http:/&#34;参数的一部分
答案 1 :(得分:0)
这是一个完全古老的问题,我相信您现在已经解决了您的问题。 但是对于新的搜索者来说,这可能会派上用场;
将<string:url2>/<string:url1>
替换为<path:url2>/<path:url1>