e4r*_*dog 6 c# controller asp.net-web-api
我想将大多数业务层方法暴露给Web API项目以允许更广泛的使用.
一个想法是每个资源有一个Web API控制器.
另一个想法是每个逻辑业务部分有一个控制器,并使用属性路由来公开相关方法.
我喜欢第二种方法,这会导致控制器减少.
没有每个资源一个控制器的缺点是什么?
附加信息:
此API将存在于Intranet中,并将为需要来自我们的2-3个主应用程序(ERP,工资单,条形码等)的数据的支持应用程序提供服务
此APi的资源是在业务层程序集中定义的业务实体.它们将是简单的对象和复杂的对象.例子:
等等
例:
我想公开像GetCustomerListByArea或的方法GetItemsListPerCategory.
然后怎样呢?我应该创建另一个控制器还是使用自定义控制器操作和属性路由并将其放在现有控制器中?
一个包含更多信息的链接:
ASP.NET Web API中的REST与RPC?谁在乎; 它做到了.
非常好,相当古老,文章解释我的问题.但它实际上并没有更深入地说如何设计控制器.在地区?还是只是文件夹?
这归结为一个简单的设计原则 - 关注点分离 (SoC),您应该考虑要从业务层公开哪些功能并基于此创建控制器。
从上面的示例中,您可以创建一个ProductControllerand CustomerController,它可以公开以下端点:
GET /api/customer/1234 # gets customer by id
POST /api/customer/create # creates a new customer
GET /api/customer/1234/items # gets all items for a customer
GET /api/product/9876 # gets a product by id
POST /api/product/create # creates a new product
Run Code Online (Sandbox Code Playgroud)
希望有帮助...
| 归档时间: |
|
| 查看次数: |
1753 次 |
| 最近记录: |