Получить параметры URL в NancyFx
Я использую NancyFx для создания веб-API, но мне приходится сталкиваться с некоторыми проблемами при получении параметров из URL.
Мне нужно отправить в API запрос .../consumptions/hourly?from=1402012800000&tags=%171,1342%5D&to=1402099199000
и уловить значение параметров: гранулярность, из, теги и. Я попробовал несколько советов, и никто не работал. Я попытался, например,
Get["consumptions/{granularity}?from={from}&tags={tags}&to={to}"] = x =>
{
...
}
Как я могу это сделать?
Луис Сантос
Ответы
Ответ 1
Есть две вещи, которые вы пытаетесь получить из URL. Один из них является частью пути hourly
, а другой - параметрами в строке запроса, а именно значениями для 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
, и вам может потребоваться преобразовать их в любой тип, который вы хотите.
Ответ 2
Вы можете позволить привязке модели NancyFx заботиться о строке запроса url.
public class RequestObject
{
public string Granularity { get; set; }
public long From { get; set; }
public long To { get; set; }
}
/потребление/час от = 1402012800000 &? К = 1402099199000
Get["consumptions/{granularity}"] = x =>
{
var request = this.Bind<RequestObject>();
}