每个资源Json格式化asp.net核心

时间:2016-08-09 10:31:57

标签: c# asp.net json asp.net-core asp.net-core-mvc

我正在使用ASP.Net核心1.0.0构建一个REST api,我目前正试图找到一种方法来序列化和反序列化Incoming request body和out going response。

例如,我有以下

[HttpPost]
public async Task<IActionResult> Post([FromBody]ScheduleEvent scheduleEvent)
{
     . 
     .
     .
     return Ok(scheduleEvent);
}

问题是,ScheduleEvent是一个数据库模型,因此不应该从客户端发送或接收所有属性。

我能找到的唯一解决方案是创建DTO类并将DTO对象转换为模型对象,或者将jsonattribute放在对象上。第一个似乎是一个不必要的解决方法,第二个强制你使你的模型依赖于json.net,除了它还使序列化和反序列化完全相同的事实。基本上它们看起来都是糟糕的解决方案 - 主要是因为json.net允许使用模式使传入/传出json无效,如果有人使用它,他可以通过为每个类型或每个Controller / Action创建输入和输出模式来轻松创建这样的功能。

然而,JsonConverter似乎不是正确的方法,创建我自己的json输出和输入格式化器似乎需要做很多工作,因为它可能有更好的解决方案。

基本上,问题是,解决这个问题的常用方法是什么,你知道更好的解决方案吗?

0 个答案:

没有答案