2

我有一个网络服务 getEmployee(),当传递一个 id 时,它会获取单个员工的员工详细信息。

同一台服务器上的另一个 Web 服务 getEmployeeList() 在通过部门时获取整个员工列表。这将获取部门的 id,然后调用 getEmployee() 服务来获取所有详细信息。

Web 服务 getEmployeeList() 的响应基本上是 getEmployee() 响应的集合。

我的问题是如何最好地实施它?是在内部从 getEmployeeList() 多次调用 getEmployee() 还是每次只调用 getEmployee() 的 process 方法更好(在 getEmployee() 中有一个 process 方法,它将 xml 作为输入并返回响应 xml )

4

2 回答 2

3

确切的答案将取决于应用程序的内部结构,但通常我不会调用在同一台服务器上运行的另一个 Web 服务 API 来为请求提供服务。这将是低效的,并将一种实现与另一种联系起来。

如果你需要返回一个员工列表,你的前端 REST 层应该从业务层或中间层调用一个方法来检索相关信息,通常以一组领域对象的形式。这个中间层将负责从持久层或某种类型的获取实际数据——即从某种类型的数据库中获取正确的员工列表,尽管确切的实现细节不应该是相关的。

然后可以将这些转换为正确的格式以构建对客户端的响应 - 即 XML 的 JAXB 对象。(您的中间层也可以直接返回这些 JAXB 对象,但这种方法有优缺点)

于 2013-10-28T17:17:50.260 回答
1

如果有可以在多个 Web 服务中重用的功能,那么该功能是一个很好的候选者,可以作为可以被另一个函数调用的单独函数,而不是仅仅让该功能存在于端点代码本身中

当我谈到需要创建这些类型的功能时,问题通常变成了它是model功能还是helper功能的问题。

归根结底,如果您要从 API 向同一个 API 中的另一个端点发出 curl 请求,那么您只是在浪费不必要的时间来处理网络带宽……这通常最终成为本地-本地场景,但有时不是,在这种情况下,您会立即注意到这不是一个好主意。

于 2013-10-28T18:40:10.313 回答