Get url parameters in NancyFx

28,390

Solution 1

There are 2 things that you are trying to get from the URL. One is a part of the path hourly - and the other is the parameters in the query string - namely the values for from and to.

You can get to the part of the path through the parameter to the handler - the x in your example.

You can get to the query string through the Request which is accessible on the NancyModule.

To put this in code:

Get["consumptions/{granularity}"] = x =>
{
    var granularity = x.granularity;
    var from = this.Request.Query["from"];
    var to = this.Request.Query["to"];
}

The variables granularity. from, and to are all dynamic, and you may need to convert them to whatever type you want.

Solution 2

You can let NancyFx's model binding take care of the url query string.

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>();
}

Solution 3

You can simply use:

var from = Request.Query.from;
Share:
28,390
Admin
Author by

Admin

Updated on July 10, 2022

Comments

  • Admin
    Admin almost 2 years

    I am using NancyFx to build a web API, but I am facing some problems when getting parameters from the URL.

    I need to send, to the API, the request .../consumptions/hourly?from=1402012800000&tags=%171,1342%5D&to=1402099199000 and catch the value of the parameters: granularity, from, tags and to. I tried several approches and none worked. I tried, for example,

    Get["consumptions/{granularity}?from={from}&tags={tags}&to={to}"] = x =>
    {
        ...
    }
    

    How can I do this?

    Luis Santos

  • user3791372
    user3791372 about 7 years
    this can be a nice solution if your input data is a lot to parse, but is usually unnecessary