मैं नए WebAPI बीटा उपयोग करने के लिए एक वेब सेवा है कि मैं OData query string conventions का उपयोग कर क्वेरी और इसे वापस OData formatted Json हो सकता है का निर्माण करने की कोशिश कर रहा हूँ बिना क्वेरी से Json स्वरूपित। मैं ओडाटा 2.0 (1.0 के बजाए) का उपयोग करना चाहता हूं।Asp.Net MVC4 वेब एपीआई - वापसी OData कस्टम MediaTypeFormatter
यह नहीं दिखता है जबकि जैसे कि यह $select विकल्प के लिए समर्थन हासिल है और हेडर $format विकल्प ओवरराइड करने के लिए, लौटने एक IQueryable
सामान्य अधिकांश अन्य क्वेरी विकल्प है कि मैं जरूरत के लिए सहायता प्रदान करने लगता है सक्षम होने के लिए लग रहे हैं।
मैं वास्तव में किसके साथ संघर्ष कर रहा हूं यह है कि ओडीटा 2.0 विनिर्देश को पूरा करने वाले जेसन ऑब्जेक्ट्स को सर्वोत्तम तरीके से कैसे प्रदान किया जाए। पूछे जाने पर वेबएपीआई सामान्य जेसन डेटा लौटाता है। उदाहरण के लिए, अगर मैं कुछ इस तरह की एक GET अनुरोध ... प्रदर्शन
http://localhost:XXXXX/vendor/?$filter=RONUMBER eq '2597385'&$select=VENDORID,VENDORNAME&$top=1&$format=Json
..to मेरे देव मशीन पर निर्दिष्ट RONumber मिलान शीर्ष हिट मिलता है, मैं निम्नलिखित Json युक्त एक प्रतिक्रिया मिल ...
[{"MEPartNumber":"11-2222-3-4444","MFGPartNumber":"123456-123","MFGSerialNumber":"ABC123","RONumber":"987654321","VendorId":"1234567","VendorName":"ACME SERVICE CENTER"}]
मुझे जेसन की आवश्यकता है जो ओडाटा 2.0 स्पेक से मिलता है। कुछ इस तरह के और अधिक ..
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
लिख सकता है लगता है। मैं वांछित जेसन की संरचना की नकल करने के लिए मेरी लौटाई गई वस्तुओं को भी संशोधित करने में सक्षम हो सकता हूं। इन दो विकल्पों के अलावा, क्या किसी को वेबएपीआई को ओडाटा 2.0 स्वरूपित जेसन ऑब्जेक्ट्स देने के लिए एक चालाक तरीका पता है?
ठीक है। जानकारी, मार्क के लिए धन्यवाद। – racingcow