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:/」帕拉姆