web-services - API POST 响应的符合标准的内容和格式是什么?

标签 web-services rest http asp.net-core single-page-application

我正在运行一个带有服务器端网络服务的 SPA。

这是我的行为:

public async Task<IActionResult> Post([FromBody]CreateSchoolclassCodeRequestDto dto)
{
    await service.CreateSchoolclassCodeAsync(dto);
    return result;
}

符合标准的结果数据会是什么样子?

  • 只是创建资源的Id
  • CreateSchoolClassCodeAsync 创建的整个实体?
  • 具有实体属性的新 Response 对象?

什么 IActionResult 符合标准?

  • CreatedAtRouteResult?
  • OkObjectResult?
  • ObjectResult?

请附上解释答案的规范。

最佳答案

How will your result data look like?

Section 10 of RFC2616 states成功的 POST 响应将包括“描述或包含操作结果的实体”。在您的情况下,响应可以包含服务器在接收 POST 时创建的实际结果。

And what concrete IActionResult would you use?

ASP.NET Core MVC 提供了五个可行的替代方案。您的示例没有说明选择哪个;所以这里有一些指南。

Section 9 of RFC2626指定对成功 POST 的三个规范响应,并声明我们应该选择最详细的可用响应。以下是从最详细到最不详细的三个及其 ASP.NET Core MVC 实现。

201(已创建)响应。如果您可以使用 URI 标识结果并且可以包含描述结果的实体,请使用此响应。 ASP.NET Core MVC 提供了三个等效的实现:

200 (OK) Response。如果您无法使用 URI 识别结果但可以包含一个实体来描述结果,请使用此选项。 ASP.NET Core MVC 提供了 OkObjectResult .

204(无内容)响应。如果您无法使用 URI 识别结果并且无法包含描述结果的实体,请使用此选项。 ASP.NET Core MVC 提供了 NoContentResult .

关于web-services - API POST 响应的符合标准的内容和格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39966801/

相关文章:

java - 如何具备http调用方法的能力?

c# - 在 session 中缓存数据集以按需获取

perl - TCP,HTTP和多线程Sweet Sp

java - HttpComponents 如何发送响应?

android - 如何在 MultipartEntity 中传递 long 或 int 数据类型值?

xml - 如何解释 WSDL 来手动创建 XML SOAP 请求?

java - ERROR 411 在 java 中使用 API(POST 方法)

Mysql根据用户输入过滤查询

sql - 如何在 API 的查询字符串中设计通用过滤运算符?

javascript - 如何在不丢失数据的情况下将 POST 正文数据传递到另一条路线?