【问题标题】:What exactly does a .net core api return to the browser?.net core api 究竟返回浏览器的是什么?
【发布时间】:2020-09-10 21:21:46
【问题描述】:

所以我有这个端点:

[HttpGet]
public async Task<ActionResult> Get()
{
   var ext = new ApiExtensions();
   List<Record> records = await ext.GetRecords();    
   return Ok(records);
}

这是 Record 对象:

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。)

谢谢。

【问题讨论】:

  • 好吧,.netcore 至少从 2.2 APIs 默认返回 json,但是您可以配置 api 在启动时返回 xml。我认为 fiddler 和 postman 在您选择它时会尽力将 JSON 解析为 xml。如果你注意到它不正确的 xml,它仍然是一个 JSON 字符串。

标签: json api asp.net-core .net-core json.net


【解决方案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

有关响应数据格式的更多详细信息,请参阅Format response data in ASP.NET Core Web API

但是这两种工具(Fiddler 和 Postman)都让我能够 “查看” api 以不同格式返回的数据(正文):文本, 原始、json、xml 等

关于 Fiddler 和 PostMan 的响应体格式,我觉得是工具的功能,最好改变响应体格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2011-09-29
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多