我的Java应用程序有一个中心部分,它具有处理逻辑和中心部分的节点数,如果获取数据的话。
目前,中心部分和节点都在java中,并且存在需要由节点实现的接口(具有数据获取方法),这允许中央部分从节点获取数据。
现在我想将节点开发外部化,以便可以用任何语言开发它,并且可以通过HTTP获取数据。我正在考虑使用REST API。我的节点使用REST API调用公开为rest API和中心部分获取数据。
我的问题是 - 是否可以根据我的中心部分的要求定义REST API的结构,这可以在开发REST API时强制执行。 例如,当我在我的节点的java类中实现任何接口时,它迫使我使用指定的参数实现一组方法。 是否有任何可用的机制,我可以强制类似于REST API开发的方式,以具有其余API和参数的特定结构。或者我可以导出一些结构并提供给REST开发人员,他们可以根据这些结构验证他们的REST API。
答案 0 :(得分:0)
据我所知,没有语言独立的方式来强制其他人按照你想要的方式编写REST-API。您将需要一个很好的规范,其他人可以遵循,您可以派生测试用例。因此,制作一个小工具,它将rest-api的url用于测试和获取数据,根据您的预期验证它并创建带有结果的日志文件。然后,您可以将这个小工具交给其他开发人员进行测试。
这并不多,但也许这个想法可以帮助你。
答案 1 :(得分:0)
您可以构建一个使用JSON结构的REST服务(即作为POST方法的主体)。要构建Java客户端,请使用可以序列化为此JSON的POJO模型。
例如:
HttpEntity<RequestBean> request = new HttpEntity<RequestBean>(requestBean, headers);
RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory());
ResponseBean response = restTemplate.postForObject(endpoint, request, ResponseBean.class);
其中RequestBean是一个类,其属性被序列化为预期的JSON,以及您必须提供给REST开发人员的那个。