2

我正在使用 python 烧瓶创建一个 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 - 未找到的响应。根据我的调查,我意识到罪魁祸首是“/”嵌入在我尝试提供的链接中。有没有办法特别处理 URL?

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

4

2 回答 2

1

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

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

于 2020-06-13T14:15:18.893 回答
0

看起来 :

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

应该修复它,它修复了 404,但我只得到参数的“http:/”部分

于 2017-06-08T08:53:30.263 回答