Как добавить форматеры, отличные от json, для ядра OData Asp? - PullRequest
0 голосов
/ 30 декабря 2018

Я хотел бы знать, как включить поддержку xml и других форматов для конечных точек odata ядра asp.В настоящее время поддерживается только формат, использующий конфигурацию по умолчанию: json.

. Для этого теста я построил службу odata ядра webapi со значением http://localhost:59191/odata/Employee.

Но http://localhost:59191/odata/Employee?$format=xml, http://localhost:59191/odata/Employee?$format=atom и оба в конечном итоге предоставляютjson.

Затем я попытался с помощью fiddler использовать заголовок Accept для application/xml и формат атома, который все еще не обеспечивает форматирование xml.

В файле startup.cs я настроил его следующим образом

1) На ConfigureServices(),

services.AddOData();

2) На Configure()

 app.UseMvc(routes =>
        {

            routes.MapODataServiceRoute("odata", "odata", GetModel());

            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");


        });

где GetModel,

   private static IEdmModel GetModel()
    {
        ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
        builder.EntitySet<Employee>("Employee").EntityType.HasKey(x=>x.Id);

        builder.EntityType<Employee>().Filter().Count().Select();
        return builder.GetEdmModel();
    }

Спасибо, что нашли время внести свой вклад.

...