Tengo el siguiente Web API (GET):¿Cómo desarrollar una API web ASP.NET para aceptar un objeto complejo como parámetro?
public class UsersController : ApiController
{
public IEnumerable<Users> Get(string firstName, string LastName, DateTime birthDate)
{
// Code
}
}
Es un GET, por lo que se puede llamar así:
http://localhost/api/users?firstName=john&LastName=smith&birthDate=1979/01/01
y recibir un resultado XML de usuario (s).
¿Es posible encapsular parámetros a una clase como esta:
public class MyApiParameters
{
public string FirstName {get; set;}
public string LastName {get; set;}
public DateTime BirthDate {get; set;}
}
y luego tener:
public IEnumerable<Users> Get(MyApiParameters parameters)
Lo he intentado y en cualquier momento que intenta conseguir el resultado de http://localhost/api/users?firstName=john&LastName=smith&birthDate=1979/01/01
, el parameter
es nulo.
Buena atrapada. ¡Sé que me estaba perdiendo algo! :) – Tohid
Esto parece morderme CADA VEZ ÚNICO Vuelvo al desarrollo de la API web. Ojalá Swashbuckle hiciera algo para asegurarse de que la Web API y ella estuvieran sincronizadas con sus suposiciones sobre si estos datos vienen o pasan como datos de la cadena de consulta o datos corporales. Y desearía que Web API NO suponga que se leen tipos complejos de las llamadas de Body on GET, eso no tiene sentido alguna vez y especialmente no como un valor predeterminado. Gracias Tohid y @Filip: esta pregunta me ha salvado en numerosas ocasiones. – Jaxidian