2017-02-06 3 views
0

私は最初から書いた、またはAPIエントリポイントへのHTTPリクエストを生成するための同じフォーマットを使用するために寄与したオープンソースライブラリをいくつか持っています。現在、次のように記述されています。HTTPリクエストのリファクタリング

HTTPリクエストを生成してJSON応答を返すために使用されます。

私はそのようにのようなconnを構築しています:ライブラリのコンストラクタで初期化される_apiKey

http://api.openweathermap.org/data/2.5/weather?lat={latitude}&lon={longitude}&appid={_apiKey} 

_apiEntryPointされた文字列:次のようになります

string queryByPoint = _apiEntryPoint + $"weather?lat={latitude}&lon={longitude}" + _apiExtension; 

これを行うには良い方法がありますか?小規模では、接続文字列を作成することは厳密に課税されるわけではありませんが、私はコードの繰り返しのように感じ、1つのURLを構築するために4行のコードを使用するのはおそらく過大です。ここで

+0

複製される4行のコードは何ですか? – Aaron

答えて

1

Flurlはここに助けることができる方法です(免責事項:私は著者です):

var queryByPoint = _apiEntryPoint 
    .AppendPathSegment("weather") 
    .SetQueryParams(new { lat = latitude, lon = longitude, appid = _apiKey }); 

Flurlの主な目標は、building URLs in fluent, structured way(それはあなたが必要とするすべてだ場合グラブだけcore package)を有効にしており、流暢にそれらを呼び出しますURLを作成し、人間が可能な限りほとんどキーストロークで応答をデシリアライズします(すべてのビットについてFlurl.Httpを取得します)。 testabilityextensibility、およびcross-platform supportを有効にするために多くの努力が払われています。これらはすべて、APIラッパーライブラリにとって理想的です。

+0

お返事ありがとうございます。ありがとうございました! –