Estoy tratando de utilizar el nuevo WebAPI beta para construir un servicio web que puedo consultar con el OData query string conventions y tienen que volver OData formatted Json. También quiero usar OData 2.0 (en lugar de 1.0).Asp.Net MVC4 Web API - Volver OData el formato JSON de consulta sin MediaTypeFormatter encargo
Aunque no parezca que tiene soporte para la opción $select y las cabeceras parece ser capaz de anular la opción $format, devolver un IQueryable
parece genérico para proporcionar soporte para la mayoría de las otras opciones de consulta que necesito.
Lo que realmente estoy luchando con la mejor manera de proporcionar objetos Json que cumplan con la especificación OData 2.0. WebAPI simplemente devuelve datos Json normales cuando se le consulta. Por ejemplo, si realizo una petición GET de algo como esto ...
http://localhost:XXXXX/vendor/?$filter=RONUMBER eq '2597385'&$select=VENDORID,VENDORNAME&$top=1&$format=Json
..para conseguir el éxito superior concuerden con la RONumber especificado en mi máquina dev, consigo una respuesta que contiene la siguiente JSON ...
[{"MEPartNumber":"11-2222-3-4444","MFGPartNumber":"123456-123","MFGSerialNumber":"ABC123","RONumber":"987654321","VendorId":"1234567","VendorName":"ACME SERVICE CENTER"}]
Necesito Json que cumpla con la especificación OData 2.0. Algo de la misma familia ..
OData V2: {
"d" : {
"results": {
"__metadata": {
"uri": "http://someserver/foo/vendor(1)",
"type": "Vendor"
},
"MEPartNumber": "11-2222-3-4444",
"MFGPartNumber": "123456-123",
"MFGSerialNumber": "ABC123",
"RONumber":"987654321",
"VendorId":"1234567",
"VendorName": "ACME SERVICE CENTER"
}
}
}
supongo que podría escribir una costumbre MediaTypeFormatter
para obtener la estructura que yo quiero. También podría ser capaz de modificar mis objetos devueltos para imitar la estructura del Json deseado. Aparte de estas dos opciones, ¿alguien sabe de una forma inteligente de hacer que WebAPI me proporcione objetos Json con formato OData 2.0?
Bien. Gracias por la información, marcind. – racingcow