Próbuję użyć nowej wersji WebAPI do zbudowania usługi internetowej, którą mogę wykonać za pomocą OData query string conventions i zwrócić ją OData formatted Json. Chcę również użyć OData 2.0 (zamiast 1.0).Asp.Net MVC4 Web API - Zwróć Json sformatowany w formacie OData z zapytania bez niestandardowego MediaTypeFormatter
Choć nie wygląda to posiada wsparcie dla opcji $select nagłówki i wydają się być w stanie zastąpić opcję $format, zwrócenie IQueryable
generycznych wydaje się zapewniać wsparcie dla większości innych opcji kwerendy, które muszę.
To, z czym naprawdę walczę, to jak najlepiej zapewnić obiekty Json, które spełniają specyfikację OData 2.0. WebAPI po prostu zwraca normalne dane Json po zapytaniu. Na przykład, jeśli wykonać żądanie GET z czymś takim ...
http://localhost:XXXXX/vendor/?$filter=RONUMBER eq '2597385'&$select=VENDORID,VENDORNAME&$top=1&$format=Json
..to dostać górny pasujący określony RONumber na moim komputerze dev, otrzymuję odpowiedź zawierającą następujące JSON ...
[{"MEPartNumber":"11-2222-3-4444","MFGPartNumber":"123456-123","MFGSerialNumber":"ABC123","RONumber":"987654321","VendorId":"1234567","VendorName":"ACME SERVICE CENTER"}]
Potrzebuję Json, który spełnia specyfikację OData 2.0. Coś więcej tak ..
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"
}
}
}
Przypuszczam Mógłbym napisać niestandardowy MediaTypeFormatter
aby uzyskać strukturę, że chcę. Mogę również zmodyfikować moje zwrócone obiekty, aby naśladować strukturę pożądanego Jsona. Oprócz tych dwóch opcji, czy ktoś wie o sprytny sposób, aby WebAPI dał mi obiekty Json sformatowane w OData 2.0?
OK. Dzięki za informację, marcind. – racingcow