json - .net core api 究竟返回浏览器的是什么?
问题描述
所以我有这个端点:
[HttpGet]
public async Task<ActionResult> Get()
{
var ext = new ApiExtensions();
List<Record> records = await ext.GetRecords();
return Ok(records);
}
这是记录对象:
public class Record
{
public int Id { get; set; }
public string Name { get; set; }
public string CreatedBy { get; set; }
public DateTime? DateCreated { get; set; }
public string LastModifiedBy { get; set; }
public DateTime? LastModifiedDate { get; set; }
}
在 Fiddler 或 Postman 中检查结果,我得到了我期望看到的结果。但是这两个工具(Fiddler 和 Postman)都让我能够“看到” api 以不同格式返回的数据(正文):文本、原始、json、xml 等。那么,api 返回的究竟是什么客户端?它只是原始选项卡中显示的“原始”数据吗?或者它是否以不同的格式返回相同的数据并且由客户来使用正确的数据?
(我使用的是 .net core 3.1。)
谢谢。
解决方案
ASP.NET Core MVC/API 支持格式化响应数据。响应数据可以使用特定格式或响应客户请求的格式进行格式化。内置辅助方法Ok返回JSON 格式的数据:
[HttpGet]
public async Task<ActionResult> GetMovie()
{
return Ok(await _context.Movie.ToListAsync());
}
您可以使用 F12 浏览器开发者工具或 Postman 来检查响应标头,content-type: application/json; charset=utf-8
是否显示。
有关响应数据格式的更多详细信息,请参阅在 ASP.NET Core Web API 中格式化响应数据。
但是这两个工具(Fiddler 和 Postman)都让我能够“看到” api 以不同格式返回的数据(正文):文本、原始、json、xml 等
关于 Fiddler 和 PostMan 响应体格式,我认为是工具的功能,最好改变响应体格式。
推荐阅读
- php - 匹配PHP中两个数组的索引以配对数据
- scala - 使用折叠的 Akka 流程未完成
- javascript - 这个例子中的 Promise.reject 和 throw 有区别吗
- .htaccess - htaccess 重定向到pdf的路径
- python - 如何解析文本中的 XML url
- google-my-business-api - 如何使用 Google My Business API 发送回复
- sql-server - 错误 = [Microsoft][SQL Server Native Client 11.0]无法打开 BCP 主机数据文件 SQLState = S1000,NativeError = 0
- cocoapods - Xcode 12(beta 4)在模拟器中构建时无法识别头文件
- ssl - PKI X509:需要 CRL 颁发者详细信息
- python - 相同的代码,但不适用于 jupyter,但适用于 VS