我正在用 Java 实现一系列 REST 微服务——我们称它们为“适配器”。
每个服务都从特定的源类型读取数据,并以相同的方式提供结果。主要思想是为所有这些提供相同的接口(服务合同),以获得可互换性。我想避免代码重复并重用服务的服务合同。
看来我正在重新发明轮子。对此有标准方法吗?
我尝试以 Java 接口的形式为 Spring MVC Controller 类和随附的 DAO 类提取服务合同CustomObject:
public interface AdapterController {
@RequestMapping(method = RequestMethod.GET, value = "/objects/{name}")
CustomObject getObject(@PathVariable final String name);
}
然后将它们放入单独的 Maven 项目中,将其设置为原始项目中的依赖项,并重写 REST 控制器类,如下所示:
@RestController
public class DdAdapterController implements AdapterController {
@Override
public CustomObject getObject(String name) {
return model.getByName(name);
}
我也可以在客户端代码中重用 DAO 对象,但是接口类在客户端是无用的。
1)总结:可以在不同的服务实现之间重用/共享服务契约吗?这样做的代价是什么?是否有共享服务合同的最佳实践?
2)下一个问题是关于服务合同和消费客户。可以在服务和客户端之间共享合同吗?Java/方法中有一些工具吗?
千巷猫影
qq_花开花谢_0
相关分类