.net核心api到底返回到浏览器什么?

问题描述

所以我有这个端点:

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

谢谢。

解决方法

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

enter image description here

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

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

关于Fiddler和PostMan响应正文格式,我认为这是该工具的功能,最好更改响应正文格式。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...