Chcę dostać metody na moim api, jeden z trasą o parametrach Ścieżka:Jak odróżnić parametry zapytań od ścieżki Parametry
API/ludzie/{PersonID}
i jeden z trasą z parametrami zapytania:
API/osób tekstu = coś
ale jeśli mogę umieścić ten kod:
// 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)
{
}
a następnie spróbuj otworzyć /api/ludzie/1 mówi niewłaściwy format i gdy próbuję otworzyć /API/osób text = coś prawda? Prace.
Mam trasa domyślna zdefiniowana tylko:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Jak mogę mieć je oba działa? Zdefiniować, że jeśli jest to parametr ścieżki, przejdź do pierwszego i jeśli jest to parametr zapytania, przejdź do drugiego na?
Co stanie się po zmianie 'long' na' int'? (Z ciekawości). Dobre pytanie. Nie jestem pewien na odpowiedź (jeszcze). Nie sądziłem, że będziesz miał problemy z przeglądaniem tego kodu. –
Przetestowałem ten dokładny scenariusz z Web API 2.2 i to działa. Myślę, że używasz starej wersji Web API. –
@JayMee 'long' lub' int' wynik jest taki sam –