C# ASP.NET Web API:从添加新记录的API返回什么?

C# ASP.NET Web API:从添加新记录的API返回什么?,c#,asp.net,post,asp.net-web-api,C#,Asp.net,Post,Asp.net Web Api,假设我有一个POST API,它在一个名为Product的表中添加了一个记录。成功插入记录后,API应在响应体中从以下内容之一返回什么 A.表中插入的产品Id B.整个记录以及产品Id 推荐的最佳实践是什么 我见过一些实例,其中开发人员返回的整个对象类似于插入的记录(如caseB)。当API消费者可能只需要产品Id时,返回整个对象似乎是在浪费带宽吗 A和B的利弊是什么?非常感谢您提供的任何资源来解释这些事情。正如您自己和评论中所指出的,您几乎有两种选择 某种形式的确认信息 包含插入信息的结果集

假设我有一个POST API,它在一个名为Product的表中添加了一个记录。成功插入记录后,API应在响应体中从以下内容之一返回什么

A.表中插入的产品Id

B.整个记录以及产品Id

推荐的最佳实践是什么

我见过一些实例,其中开发人员返回的整个对象类似于插入的记录(如caseB)。当API消费者可能只需要产品Id时,返回整个对象似乎是在浪费带宽吗


AB的利弊是什么?非常感谢您提供的任何资源来解释这些事情。

正如您自己和评论中所指出的,您几乎有两种选择

  • 某种形式的确认信息
  • 包含插入信息的结果集
  • 在我看来,这在很大程度上取决于您在应用程序另一端处理数据的方式

    例如: 我们的应用程序使用Asp.NETWebAPI,前端有角度,实现基本的数据处理,以减少定期交换大型数据集的需要。当要更新部分数据集时,它将在API上发送并处理整个数据集

    然后,API将201作为成功消息发送回,或发送回409,其中包含映射到数据显示的错误集,指示哪些数据已损坏或存在冲突,需要检查

    这条线索中的答案可能会让你们感兴趣,也可能会建议你们查看其他API以获得灵感


    返回插入的数据的优点是可以检查数据是否正确

    您已经基本上解释了B的优点和缺点,都是关于web api调用的需求。您将根据requirementsEntire记录是否常见以及包含将获取该记录的URL的位置标头来决定返回内容。返回内容取决于API客户端的要求和API提供程序的首选项。产品创建后,您是否有其他需要退回的物品?客户的要求是什么?另外,如果您只返回id,那么客户端将不得不进行另一个API调用以获取详细信息,这也是一个常见的“201 Created”响应,并且非常合适。它应该包含一个位置头,指向可以在其中发出GET请求以检索新资源的URL。Web API提供了一个CreatedAtRoute帮助器方法来完成此操作。