首页 > 解决方案 > .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。)

谢谢。

标签: jsonapiasp.net-core.net-corejson.net

解决方案


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 响应体格式,我认为是工具的功能,最好改变响应体格式。


推荐阅读