Подтвердить что ты не робот

Получить параметры 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 =>
{
    ...
}

Как я могу это сделать?

Луис Сантос

4b9b3361

Ответ 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>();
}