2017-05-29 10 views
1

私はPythonフラスコを使用してREST APIを作成しています。 APIは準備が整い、ローカルホストのポート番号8000で動作します。今、私はこのREST APIにユーザーフレンドリーなインターフェイスを与えようと思っています。このインターフェースのために、Python - restplusを使うことにしました。私はこのサービスを(8000で走っている)内部的に5000で動くスウェージャーアプリケーションから呼び出すことを考えましたpythonフラスコ(restplus)内のGETリクエストでURLをパラメータとして渡すにはどうすればいいですか?

私は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を扱う方法はありますか?

リクエストを送信する前にエンコードする必要があります。 (これは私のパラメータが醜い見えるようになります)。私が紛失しているものはありますか?それはと思われ

+0

の一部を? – Nullman

+0

はい、私はその問題に直面しています。任意の既知のソリューションですか? – Harry

+0

unfortunatly、 – Nullman

答えて

0

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

はそれを修正する必要があり、それが404を修正しかし、私は唯一の「のhttp:/」取得していますあなたのパラメータはスラッシュが含まれている場合、これは問題になる文句を言わないのparam

関連する問題