asp.net-web-api - 服务和方法的区别?
问题描述
我知道服务是一个自包含的功能,现在如果有人按照其余原则创建服务,那么它可以称为休息服务。现在我的问题是,如果我创建一个带有控制器和 getEmployee()、getEmployeeAddress(int id) 等多个操作的 Asp.Net Web API 项目。然后客户端将使用 URL 使用它,例如http://www.aaa.com/employee,那么我可以说 Action 方法 getEmployee 是一项服务,而 getEmployeeAddress 与 URL http://www.aaa.com一起使用/employee/1是另一项服务。还是我应该说我提供具有多种功能的单一员工管理服务???
解决方案
具有多个操作方法的单个 Web 服务EmployeeService
,配置了不同的 url。可以基于模块创建服务,因为getEmployee
和getEmployeeAddress
与员工相关,它们可以作为操作方法添加到EmployeeService
. 此外,我不确定将员工地址作为不同端点而不是对象内的列表对象的计划Employee
。不过,您可以GET
在服务中执行多个操作。
- 阅读所有员工
网址:/employee
手术:GET
- 阅读单个员工
网址:/employee/{id}
手术:GET
- 读取员工地址
网址:/employee/{id}/address
手术:GET
对于多个 GET 操作(显然使用不同的方法名称而不是默认方法名称,例如1. GET
),请确保在操作方法的[Route("url")]
or[HttpGet("url")]
属性中分配了不同的 url。
附加点,通过url中的查询字符串传递与操作不直接相关的附加信息,例如在结果集中使用分页或排序,例如/employee?page=1
推荐阅读
- python - python程序如何改变自己的代码
- typescript - 我如何告诉 TypeScript 订阅函数的结果是一个 x 数组?
- python-3.x - Python Web Scraping:从非结构化数据中拆分数量
- openstack - 如何在 Centos 7 中设置 OpenStack API 配置?
- python - Sklearn TypeError:init()得到了一个意外的关键字参数'tol'
- c - 双链表查询
- angular - 当我尝试将 Angular CLI 与 @ngrx 一起使用时出现错误
- docker - Docker swarm 容器无法解析另一个节点中的容器地址
- julia - 从 jld2 文件加载数据帧对于系统内存来说太大了
- javascript - Is it possible for TypeScript to infer keys from a dynamic object?