J'ai créé un WEB API
en utilisant la base de données MySQL
. L'API fonctionne comme prévu pour le moment. J'ai envoyé un numéro de série de compteur et un paramètre de date et heure puis obtenir le résultat attendu. Ci-dessous mon contrôleurTransmission de plusieurs paramètres à l'API Web Méthode GET
public MDCEntities medEntitites = new MDCEntities();
public HttpResponseMessage GetByMsn(string msn, DateTime dt)
{
try
{
var before = dt.AddMinutes(-5);
var after = dt.AddMinutes(5);
var result = medEntitites.tj_xhqd
.Where(m =>
m.zdjh == msn &&
m.sjsj >= before &&
m.sjsj <= after).Select(m => new { MSN = m.zdjh, DateTime = m.sjsj, Signal_Strength = m.xhqd }).Distinct();
return Request.CreateResponse(HttpStatusCode.Found, result);
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
}
}
ci-dessous est mon fichier WebApiConfig
config.Routes.MapHttpRoute(
name: "GetByMsn",
routeTemplate: "api/{controller}/{action}/{msn}/{dt}",
defaults: null,
constraints: new { msn = @"^[0-9]+$" , dt = @"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$" }
);
L'URL est http://localhost:14909/api/meters/GetByMsn/002999000171/2017-10-10T10:08:20
La réponse que je reçois est
[{
"MSN": "002999000171",
"DateTime": "2017-10-10T10:04:39",
"Signal_Strength": "20"
},
{
"MSN": "002999000171",
"DateTime": "2017-10-10T10:06:35",
"Signal_Strength": "19"
},
{
"MSN": "002999000171",
"DateTime": "2017-10-10T10:08:31",
"Signal_Strength": "20"
},
{
"MSN": "002999000171",
"DateTime": "2017-10-10T10:10:27",
"Signal_Strength": "20"
},
{
"MSN": "002999000171",
"DateTime": "2017-10-10T10:12:23",
"Signal_Strength": "20"
}]
Tout cela scénario fonctionne lorsqu'un single serial number
est passé. Mais du côté client, il y aurait plus d'un numéro de série différent. Pour cela, j'ai dû faire en sorte que ma méthode fonctionne à la fois pour un et plusieurs numéros de série à condition que la date et l'heure soient les mêmes pour tous.
One solution is to create a new method a pass the multiple serial number strings, but this will not help because the number of serial numbers are dynamic i.e. they may be one, two to 100's. So setting a hard coded method won't be a solution.
Je l'ai recherché mais la plupart du temps j'ai trouvé la méthode statique encore et encore. Mais ce solution semble un peu utile mais encore une fois je ne sais pas si cela va fonctionner ou non.
Toute aide serait grandement appréciée.