如何在python烧瓶(restplus)中的GET请求中传递URL作为参数?

时间:2017-05-29 06:42:07

标签: python flask swagger flask-restplus

我正在使用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?

我应该在发送请求之前对它们进行编码。 (这会让我的参数看起来很难看)。有什么我想念的吗?

2 个答案:

答案 0 :(得分:0)

似乎:

@api.route('/HybridComparator/<path:url2>/<path:url1>')

应该修复它,它修复了404,但我只得到了#34; http:/&#34;参数的一部分

答案 1 :(得分:0)

这是一个完全古老的问题,我相信您现在已经解决了您的问题。 但是对于新的搜索者来说,这可能会派上用场;

<string:url2>/<string:url1>替换为<path:url2>/<path:url1>