J'utilise NancyFx pour créer une API Web, mais je rencontre des problèmes pour obtenir les paramètres à partir de l'URL.
Je dois envoyer à l’API la requête .../consumptions/hourly?from=1402012800000&tags=%171,1342%5D&to=1402099199000
et saisir la valeur des paramètres: granularité, from, tags et to. J'ai essayé plusieurs approches et aucune n'a fonctionné. J'ai essayé, par exemple,
Get["consumptions/{granularity}?from={from}&tags={tags}&to={to}"] = x =>
{
...
}
Comment puis-je faire ceci?
Luis Santos
Il y a 2 choses que vous essayez d'obtenir de l'URL. L'un fait partie du chemin hourly
- et l'autre correspond aux paramètres de la chaîne de requête - à savoir les valeurs pour from
et to
.
Vous pouvez accéder à la partie du chemin d'accès via le paramètre du gestionnaire - la x
dans votre exemple.
Vous pouvez accéder à la chaîne de requête via la variable Request
accessible sur la variable NancyModule
.
Pour mettre ceci en code:
Get["consumptions/{granularity}"] = x =>
{
var granularity = x.granularity;
var from = this.Request.Query["from"];
var to = this.Request.Query["to"];
}
Les variables granularity
. from
et to
sont tous dynamic
et vous devrez peut-être les convertir au type de votre choix.
Vous pouvez laisser la liaison de modèle de NancyFx s'occuper de la chaîne de requête url.
public class RequestObject
{
public string Granularity { get; set; }
public long From { get; set; }
public long To { get; set; }
}
/ consommations/horaire? de = 1402012800000 & à = 1402099199000
Get["consumptions/{granularity}"] = x =>
{
var request = this.Bind<RequestObject>();
}
Vous pouvez simplement utiliser:
var from = Request.Query.from;