我们正考虑在下一个项目中使用ServiceStack; 在看示例时,我注意到,没有通用的命名约定. 例如:
entity:电影
请求:电影
回复:MovieResponse
所有操作都是如此. 现在这个例子:
实体:答案
请求:答案
响应:AnswerResult
实体:用户?
请求:GetUsers
响应:GetUsersResponse
(看到用动词盯着的班级名字有点奇怪)
所以,你可能想出了一些聪明的命名约定并希望分享.此外,服务堆栈上是否有更大的开源项目,我可以看看他们如何组织他们的服务模型?
小智 11
我使用BREAD 1和Verb-Entity以下样式:
命名空间是"实体",然后:
请注意,表单实际上是[动词] [实体] [角色].
动词:浏览,阅读,编辑,添加,删除(BREAD),验证,提取(例如其他操作)
实体:这是复数或单数,取决于受影响/检索实体的正常数量.(我并不完全不认为像DeleteEntity这样的服务可能会一次删除多个实体,但如果放入"单数"-name DTO /服务,应该仔细考虑.它可以始终遵循复数DeleteEntities.)
角色:(没什么)=请求DTO,响应=响应DTO,服务=服务.
命名空间:始终为复数.这避免了与实体(单数)等DAL类的冲突.
对于BREAD绑定(端点总是复数,它表示一个集合):
杂项.约束指南:
1不幸的是,BREAD似乎是一个边缘词.来自CRUD维基百科的文章:
CRUD的另一种变体是BREAD,它是"浏览,读取,编辑,添加,删除"的首字母缩写.
我更喜欢它的声音,它有一个单独的Browse动作.
小智 4
我目前使用第三个选项,其中请求以动词开头。原因是我的实现并不完全基于典型的 REST 样式 url,并且我广泛使用 C# 客户端。在这种情况下,动词只是有助于清楚地识别服务的目的。
除了我的特定场景之外,我会选择
实体:电影请求:电影响应:MovieResponse
| 归档时间: |
|
| 查看次数: |
1651 次 |
| 最近记录: |