如何为Asp核心OData添加json以外的格式化程序?

时间:2018-12-30 17:04:20

标签: asp.net-core odata asp.net-core-webapi

我想知道如何为asp核心odata端点启用对xml和其他格式的支持。当前仅支持使用默认配置的格式为json。

为此测试,我在http://localhost:59191/odata/Employee处构建了一个webapi核心odata服务。

但是http://localhost:59191/odata/Employee?$format=xmlhttp://localhost:59191/odata/Employee?$format=atom最终都提供json。

然后,我尝试使用application/xml的Accept标头和仍不提供xml格式的atom格式的提琴手。

在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();
    }

感谢您抽出宝贵的时间来做出贡献。

0 个答案:

没有答案