2017-05-29 94 views
1

我正在使用python烧瓶创建一个REST API。该API已准备就绪,可用于本地主机的端口号8000。现在我打算给这个REST API一个用户友好的界面,我决定使用python - restplus。我想在内部从运行在5000上的swagger应用程序调用该服务(运行在8000上)。我能够创建API(Swagger)的基本结构。针对该代码如下所示:如何在python容器(restplus)的GET请求中将URL作为参数传递?

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的方法?

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

+0

不会这是一个问题,如果你的参数包含斜线的一部分? – Nullman

+0

是的,我正面临着这个问题。任何已知的方案? – Harry

+0

不幸的是,我不知道除了编码 – Nullman

回答

0

看来:

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

应该修复它,它修复了404,但我只得到“HTTP:/”帕拉姆

相关问题