【发布时间】:2021-04-13 07:14:22
【问题描述】:
关于 HttpGet 操作...
数据库正在返回一个完整的 JSON 字符串,在返回给用户之前不需要翻译。
目前,我正在将此 JSON 反序列化为 C# 模型/类,然后返回该模型。
仅返回从数据库返回的 JSON 字符串(不再使用 C# 模型)有哪些权衡?
我之所以这么问,是因为就模型提供的好处而言,这似乎是一种反模式。
请注意,我知道不必将 JSON 从 DB 反序列化到模型中,然后将模型序列化回 JSON 字符串以响应客户端,从而节省了时间。然而,
模型示例:
var response = await GetDataByParams(functionName, npgSqlParams);
List<EmployeeInfo> model = JsonConvert.DeserializeObject<List<EmployeeInfo>>(response);
return model;
对比:
var response = await GetDataByParams(functionName, npgSqlParams);
return response;
注意:我们使用的是 postgres 和 Npgsql。不使用实体框架。
注意:我们使用的是 Swagger,所以我知道我们会丢失 API 文档中的模型定义。
问题:这对 API 的模拟测试有何影响?
问题:如果 JSON 更改并违反与客户端的合同怎么办? 我的想法是使用模型可以保证合同。如果从数据库返回的 JSON 违反了模型,那么服务器上就会发生异常。不使用模型会将异常推送回客户端。
【问题讨论】:
标签: c# json asp.net-core asp.net-web-api .net-core