C# 我应该在服务堆栈服务模型中使用什么命名约定?
我们正在考虑在下一个项目中使用ServiceStack;在查看示例时,我注意到,没有通用的命名约定。 实体:电影C# 我应该在服务堆栈服务模型中使用什么命名约定?,c#,
servicestack,C#,
servicestack,我们正在考虑在下一个项目中使用ServiceStack;在查看示例时,我注意到,没有通用的命名约定。 实体:电影 请求:电影 答复:MovieResponse 所有操作都是如此。 实体:答案 请求:答案 答复:答复结果 实体:用户? 请求:GetUsers 响应:GetUsersResponse (看到类名以动词开头有点奇怪) 所以,也许你已经想出了一些聪明的命名约定,并愿意与大家分享。 另外,在服务栈上是否有更大的开源项目,我可以看看他们是如何组织他们的服务模型的?我目前使用第三个选项,
请求:电影
答复:MovieResponse 所有操作都是如此。 实体:答案
请求:答案
答复:答复结果 实体:用户?
请求:GetUsers
响应:GetUsersResponse (看到类名以动词开头有点奇怪) 所以,也许你已经想出了一些聪明的命名约定,并愿意与大家分享。
另外,在服务栈上是否有更大的开源项目,我可以看看他们是如何组织他们的服务模型的?我目前使用第三个选项,其中请求以动词开头。原因是我的实现并不完全基于典型的REST风格URL,我广泛使用c#客户端。在这个场景中,动词只是有助于清楚地识别服务的目的 除了我的特殊情况,我会同意 实体:电影 要求:电影 回答:MovieResponse我使用BREAD1和动词实体,其样式如下: 名称空间为“实体”,则:
- 浏览量
- 浏览实体响应
- 浏览实体服务
- 加法
- 附加响应
- 附加服务
- 动词:浏览、阅读、编辑、添加、删除(面包)、验证、提取(如其他操作)
- 实体:这是复数或单数,取决于受影响/检索实体的正常数量。(我并不完全否认像DeleteEntity这样的服务可能一次删除多个实体,但如果将其放在一个“单数”名称DTO/服务中,则应仔细考虑。它可以始终跟随复数DeleteEntity。)
- 角色:(无)=请求DTO,响应DTO,服务=服务
- 名称空间:总是复数。这避免了与实体(单数)等DAL类的冲突
- /实体获取-浏览实体
- /实体/Id获取-readentity
- /entities/Id POST-EditEntity(未出售;未研究补丁支持)
- /实体后补遗
- /实体/Id删除-删除实体
- /entities/Id/verb POST/GET-VerbEntity(即ValidateEntity),仅当幂等元时获取
- /entities/u/verb POST/GET-verbentiy,适用于没有标识资源的任意(但特定)实体。这种情况很少见,但用于验证尚未保存的实体等情况。它允许模式以其他方式保持一致
- /entities/verb POST/GET-VerbEntities,适用于集合,但不适用于任何特定资源
- /实体/Id/items/。-与具有给定Id的实体相关的子/相关端点遵循前面讨论的相同模式
不幸的是,面包似乎是一个边缘术语。从: CRUD的另一个变体是BREAD,是“浏览、阅读、编辑、添加、删除”的首字母缩写
我更喜欢它的声音,而且它有一个单独的浏览操作。以前从未听说过BREAD,所以CRUD似乎有扩展名rough-E用于Enumerate,这是一个非常好的答案。