Asp.Net MVC4 Web API - إرجاع تنسيق OData إلى Json من الاستعلام بدون MediaTypeFormatter المخصص

StackOverflow https://stackoverflow.com/questions/9389762

سؤال

أحاول استخدام الإصدار التجريبي الجديد من WebAPI لإنشاء خدمة ويب يمكنني الاستعلام عنها باستخدام اصطلاحات سلسلة استعلام OData وجعلها ترجع OData بتنسيق Json . أريد أيضًا استخدام OData 2.0 (بدلاً من 1.0).

في حين أنه لا يبدو أنه يدعم $ select $ format ، يبدو أن إرجاع رمز عام للرمز العام يوفر الدعم لمعظم خيارات طلب البحث الأخرى التي أحتاجها.

ما أعاني منه حقًا هو أفضل طريقة لتوفير كائنات Json التي تفي بمواصفات OData 2.0. يقوم WebAPI فقط بإرجاع بيانات Json العادية عند الاستعلام عنها. على سبيل المثال ، إذا قمت بإجراء طلب GET لشيء مثل هذا ... Genacodicetagpre

.. للحصول على أفضل نتيجة مطابقة لـ RONumber المحدد على جهاز التطوير الخاص بي ، أحصل على استجابة تحتوي على Json التالي ... Genacodicetagpre

أحتاج إلى Json الذي يفي بمواصفات OData 2.0. شيء أكثر مثل هذا .. Genacodicetagpre

أفترض أنه يمكنني كتابة رمز ترميز عام مخصص للحصول على البنية التي أريدها. قد أتمكن أيضًا من تعديل كائناتي المرتجعة لتقليد بنية Json المطلوبة. بصرف النظر عن هذين الخيارين ، هل يعرف أي شخص طريقة ذكية لجعل WebAPI يعطيني كائنات Json بتنسيق OData 2.0؟

هل كانت مفيدة؟

المحلول

تحتاج إلى كتابة رمز الترميز العام الخاص بك لتقديم التسلسل الصحيح.لم نشحن مُنسق OData في MVC 4 Beta ، لكن التجسيد السابق لـ WCF Web Api يحتوي على بعض الأمثلة عن كيفية كتابة واحدة. http://wcf.codeplex.com/SourceControl/list/changesets ابحث عن Microsoft.Net.Http.Formatting.OData (يجب أن تكون قادرًا على استخدام معظم المصدر ، على الرغم من أن بعض تفاصيل التنفيذ قد تغيرت)

قد يكون البديل هو محاولة إنشاء DTO الذي من شأنه أن يتسلسل إلى الشكل المتوقع بواسطة OData v2.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top