Me pregunto si es posible devolver varios tipos en un solo API web. Por ejemplo, quiero que una API devuelva ambas listas de clientes y pedidos (estos dos conjuntos de datos pueden o no relacionarse entre sí?Cómo la API Web devuelve varios tipos
Respuesta
Para devolver varios tipos, puede envolverlos en tipo anónimo, hay dos enfoques posibles:
public HttpResponseMessage Get()
{
var listInt = new List<int>() { 1, 2 };
var listString = new List<string>() { "a", "b" };
return ControllerContext.Request
.CreateResponse(HttpStatusCode.OK, new { listInt, listString });
}
O:
public object Get()
{
var listInt = new List<int>() { 1, 2 };
var listString = new List<string>() { "a", "b" };
return new { listInt, listString };
}
Asimismo, recuerda que El serializador XML no soporta los tipos anónimos. Por lo tanto, usted tiene que asegurarse de que la solicitud debe tener encabezado:
Accept: application/json
con el fin de aceptar el formato JSON
Debe usar el serializador JsonNetFormatter, porque el serializador predeterminado-DataContractJsonSerializer no puede serializar tipos anónimos.
public HttpResponseMessage Get()
{
List<Customer> cust = GetCustomers();
List<Products> prod= GetCustomers();
//create an anonymous type with 2 properties
var returnObject = new { customers = cust, Products= prod };
return new HttpResponseMessage<object>(returnObject , new[] { new JsonNetFormatter() });
}
usted podría conseguir JsonNetFormatter de HERE
im conseguir un error en el HttpResponseMessage (y también el JsonNetFormatter pero creo que sé por qué están allí) diciendo "El tipo no genérico 'System.Net.Http.HttpResponseMessage' no se puede usar con argumentos de tipo". ¿Algunas ideas? – Matt
Este código funcionará en ASP.NET Web API beta –
- 1. ASP.NET Web API devuelve DTO cuestionables?
- 2. Devolver tipos anónimos con API web
- 3. ¿Cómo restringir varios tipos genéricos?
- 4. ¿Hay marcos web MVC que admitan varios tipos de solicitud?
- 5. MVC4 Web interfaz API Resto con varios parámetros
- 6. Diferentes tipos de devolución para ASP.NET Web API
- 7. Colección Backbone.js con varios tipos
- 8. Microsoft Web Api devuelve un archivo? usar byte []?
- 9. ¿Cómo asegurar mi API web?
- 10. Cómo integrar OpenID en la API web de MVC4
- 11. GWT RequestFactory y varios tipos
- 12. Autenticación de la API web de ASP.NET
- 13. cómo llamar api web multidominio utilizando ajax?
- 14. heredada controlador API API Web
- 15. Cómo comprimir varios archivos utilizando solo .net api en C#
- 16. Sitio web en varios idiomas
- 17. ¿Cómo funcionan varios servidores en sincronización para la aplicación web?
- 18. ¿Cómo se controla la disponibilidad de varios sitios web?
- 19. ¿Está probando propiedades QuickCheck contra varios tipos?
- 20. Web Audio API WaveShaperNode
- 21. Web Services API Versioning
- 22. ¿Diferencias entre varios tipos de bool?
- 23. C++ "varios tipos en una declaración" error
- 24. ASP.NET Web API en IE
- 25. Cómo evitar la concurrencia en la API del servicio web?
- 26. Consultas y tipos de OData que no sean IQueryable en ASP.NET Web API
- 27. juego varios constructores de tipos de datos a la vez
- 28. Inyectar la misma instancia DataContext en varios tipos con Unity
- 29. Usar RedirectToAction en la API web
- 30. Web API Security
Nota: La solicitud de aceptación debe ser application/json, ya que el serializador xml responderá con un error, sin saber qué hacer. – fionbio