新しいWebAPIベータ版を使用して、OData query string conventionsを使用してクエリでき、OData formatted Jsonを返すWebサービスを構築しようとしています。私はOData 2.0(1.0ではなく)を使いたいと思っています。Asp.Net MVC4 Web API - カスタムMediaTypeFormatterを使用せずにクエリからOData形式のJsonを返しました
それは$selectオプションをサポートしており、ヘッダが$formatオプションを無効にすることができるように見えるようにそれが見えませんが、一般的なIQueryable
を返すことは、私が必要とする他のほとんどのクエリオプションのサポートを提供しているようです。
私が本当に苦労しているのは、OData 2.0仕様を満たすJsonオブジェクトを提供する最良の方法です。 WebAPIは照会されると通常のJsonデータを返します。例えば、私はこのような何かのGETリクエストを実行した場合...
http://localhost:XXXXX/vendor/?$filter=RONUMBER eq '2597385'&$select=VENDORID,VENDORNAME&$top=1&$format=Json
私のdevのマシン上で指定したRONumberに一致するトップヒットを取得し..to、私は次のようなJSONを含む応答を取得...
[{"MEPartNumber":"11-2222-3-4444","MFGPartNumber":"123456-123","MFGSerialNumber":"ABC123","RONumber":"987654321","VendorId":"1234567","VendorName":"ACME SERVICE CENTER"}]
OData 2.0仕様を満たすJsonが必要です。もっとこのような何か...
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"
}
}
}
私は私が欲しいの構造を得るために、カスタムMediaTypeFormatter
を書くことができたとします。返されたオブジェクトを変更して、目的のJsonの構造を模倣することもできます。これらの2つのオプションを除いて、WebAPIにOData 2.0形式のJsonオブジェクトを与える巧妙な方法を知っている人はいますか?
大丈夫です。情報をくれてありがとう、marcind。 – racingcow