gpt4 book ai didi

c# - 开发 ASP.NET WEB API 服务应用程序

转载 作者:行者123 更新时间:2023-12-02 17:51:29 24 4
gpt4 key购买 nike

我将开发我的第一个 ASP.NET WEB Api 服务应用程序,但我不太确定如何开始。
如果我的数据库中有 20 个表,我是否必须创建 20 个 Api Controller ?

出于测试目的,我为每个表创建了一个 API Controller 。我不知道这是否是最好的方法,但它确实有效。我将使用工作单元模式和依赖注入(inject)(Unity for webapi)。有人有什么想法或建议吗?

提前谢谢您。

最佳答案

您的服务不应反射(reflect)您存储数据的方式。事实上,许多人会认为这是一种反模式或不好的做法。

当今设计 API 服务层有两种流行的趋势/模式(以及许多其他我不会在这里提及的趋势/模式)

Service Oriented (SOA)

这将引导您按业务领域/功能或类似内容对服务进行分组。它还将以任务/行动为导向。因此每个服务都包含系统应该执行的操作和任务。

示例

例如,如果我正在开发电子商务系统,我将创建以下服务:

  • 安全(用户、群组、注册、登录、丢失密码等)
  • 目录(产品、库存水平、评论等)
  • 订单(新订单、订单状态、取消等)
  • 履行(运输、更新库存等)

Resource Oriented (RESTful)

在此架构中,您将设计您的服务,就好像它们提供对资源组的访问(但不是明确的事件、操作、命令等)

HTTP 协议(protocol)用作通信层,因此每个资源都有其 URI/N,并执行 HTTP 操作来控制该资源(GET用于查询,< strong>POST用于插入PUT用于更新DELETE等)

示例

使用上面相同的电子商务案例,这就是它在 RESTful 服务架构中的外观:

  • 用户(所有 CRUD 操作)
  • 产品(所有 CRUD 操作)
  • 产品评论(所有 CRUD 操作)
  • 订单(所有 CRUD 操作)

For more detailed examples of a RESTful API could be found at SpreeCommerce and Shopify and how they structured their API endpoints.

这种架构最近越来越流行并被广泛接受,主要是因为它允许后端支持构建多个客户端应用程序(例如 Web 和移动),但请注意,它会迫使您转移大部分客户端应用程序。面向客户端的系统开发/编码(如果是 Web 应用程序/网站,则为 HTML/JS)

我还鼓励您阅读更多有关 SOA 的内容。 ,以及其他设计和架构模式。尽管我不推荐特定的阅读 Material 。

编写 API 时要考虑的事项

  • Document your API well. use an intuitive tool, something like Apiary and their underlying technology API Blueprint

  • Use an automated testing tool for your API. Best if it can read the use cases from your API documentation and generate unit tests based on them (that is possible using API Blueprint technology, Shameless Plug: API Blueprint host for asp.net can help simulate an API using it's documentation)

关于c# - 开发 ASP.NET WEB API 服务应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33070816/

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