gpt4 book ai didi

c# - 存储库应该向 RESTful Web API 返回什么样的错误代码

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:16 25 4
gpt4 key购买 nike

当我查看 Microsoft 关于存储库模式 的示例时,它当然是一个完全简单的示例,与现实世界的需求无关 - 一如既往...-

http://www.asp.net/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

Repository Add/Del/Update 方法返回 Void - 什么都没有 -

另一方面,当有人使用我的 RESTful Web API 时,我想提供类似的东西

NotFound() 如果删除记录没有做任何事情

OK() 如果删除成功

更新方法相同。

您在现实世界的项目中使用什么作为存储库的返回类型来让调用者知道真正发生了什么?

最佳答案

有两个主要选项:

  1. 将 NotFound 之类的情况视为异常(exception)情况。指定在您要删除的对象不存在的情况下您的存储库将抛出的异常类型。如果您选择此选项,那么您可以在 Web API 层拥有一个非常通用的异常捕获处理程序,它知道这些异常应该转换成什么样的响应。
  2. 更改存储库接口(interface)以返回 Optional错误值或 Sum Type表示调用该方法的所有可能结果。这需要调用存储库的方法来决定在每个场景中做什么,但它也允许更灵活地处理场景。 (例如,如果此人本身不存在,您可能希望 DeletePerson 返回 NotFound,但是如果在您使用不同的存储库清理一些相关数据时没有数据存在,您希望使用不同的返回类型?)

您应该避免的是让存储库层返回某种面向 HTTP 的响应代码。

关于c# - 存储库应该向 RESTful Web API 返回什么样的错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com