voglio avere per ottenere metodi sulla mia api, uno con il percorso con parametri di percorso:Come distinguere parametri di ricerca dai percorso Parametri
api/persone/{PersonID}
e uno con il percorso con i parametri di query:?
api/persone text = qualcosa
ma se ho messo questo codice:
// GET: api/people/{personId}
[Route("api/people/{personId}")]
[HttpGet]
public HttpResponseMessage Get(long personId)
{
}
// GET: api/people?text=something
[Route("api/people")]
[HttpGet]
public HttpResponseMessage Get(string text)
{
}
e quindi si tenta di aprire /API/persone/1 si dice formato sbagliato e quando provo ad aprire /api/persone text = qualcosa esso? lavori.
ho solo il percorso di default definito:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Come posso averli entrambi a lavorare? Definisci che se si tratta di un parametro percorso vai al primo e se è un parametro di ricerca vai al secondo?
Cosa succede quando si cambia 'long' in' int'? (Per curiosità). Bella domanda, però. Non sono sicuro della risposta (ancora). Non avrei pensato che avresti avuto problemi a guardare questo codice. –
Ho testato questo esatto scenario con Web API 2.2 e funziona. Penso che tu stia utilizzando una vecchia versione dell'API Web. –
@JayMee 'long' o' int' il risultato è lo stesso –