NancyFxを使用してWeb APIを構築していますが、URLからパラメーターを取得する際にいくつかの問題に直面しています。
APIにリクエストを送信する必要があります.../consumptions/hourly?from=1402012800000&tags=%171,1342%5D&to=1402099199000
そして、パラメータの値をキャッチします:粒度、from、tags、to。いくつかのアプローチを試しましたが、どれも機能しませんでした。たとえば、
Get["consumptions/{granularity}?from={from}&tags={tags}&to={to}"] = x =>
{
...
}
これどうやってするの?
ルイス・サントス
URLから取得しようとしているものが2つあります。 1つはパスhourly
の一部であり、もう1つはクエリ文字列のパラメーター、つまりfrom
およびto
の値です。
ハンドラーへのパラメーターを介してパスの一部(例ではx
)に到達できます。
Request
でアクセス可能なNancyModule
を介してクエリ文字列にアクセスできます。
これをコードに入れるには:
Get["consumptions/{granularity}"] = x =>
{
var granularity = x.granularity;
var from = this.Request.Query["from"];
var to = this.Request.Query["to"];
}
変数granularity
。 from
、およびto
はすべてdynamic
であり、必要なタイプに変換する必要がある場合があります。
NancyFxのモデルバインディングにurlクエリ文字列を処理させることができます。
public class RequestObject
{
public string Granularity { get; set; }
public long From { get; set; }
public long To { get; set; }
}
/ consumptions/hourly?from = 1402012800000&to = 1402099199000
Get["consumptions/{granularity}"] = x =>
{
var request = this.Bind<RequestObject>();
}
次を使用できます。
var from = Request.Query.from;