在服务器内部调用Web服务

我有一个web服务getEmployee(),它可以在传递id时获取单个员工的员工详细信息。

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

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

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

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

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

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

如果有多个function可以在多个Web服务中重用,那么该function是一个很好的候选者,可以被另一个函数调用的单独函数,而不是只是让这些function存在于端点代码本身内部。

当我发现需要创建这些类型的函数时,问题通常会成为一个问题,即它是modelfunction还是helperfunction。

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