繁体   English   中英

如何从现有的基于XML的RESTful服务创建Java Jersey客户端

[英]How do I create a Java Jersey client from an existing XML based RESTful service

我习惯于与SOAP Webservices集成,其中wsdl是可访问的,并且可以用于使用wsimport生成java客户端。 我最近获得了一个RESTful端点,它使用XML作为有效负载类型。 到目前为止,我看到没有WADL \\ Swagger YML文件,我可以访问以获取服务的定义。

到目前为止我所知道的是:
1.端点
2.它在HTTP基本身份验证之后运行
3.它接受一个POST
4.我所有的三个测试XML有效负载似乎都“工作”,返回与我想要做的事情相关的XML响应
5.根据我执行的操作,URI不会改变,服务会根据不同的XML输入做出不同的反应(请求包含一个payload-id属性,它似乎表示正在执行的操作类型)

从上面看,服务看起来并不像“类似REST”,它可能只是一个进程侦听特定请求的端口并执行原始字符串操作来解析值,然后使用字符串连接来粗略地构建响应。 我得到的大部分REST只是在较低的水平,但我希望以某种方式管理服务的明显粗糙度更好。

我如何为这项服务生成一个“干净的”Java客户端(类似于wsimport可以做什么),因为我有3个不同操作的XML样本请求似乎是暴露的?

对于上面我觉得我自己需要创建WADL \\ Swagger YML ,或者有一个工具可以使用我有动态构建这些定义的请求?

我们最终使用了Feign ,这是一个Java到HTTP客户端绑定器。 它是Netflix OSS,但似乎是一个较旧的库(osslifecycle = archived)。

包装HTTP服务非常简单,因为它只有一个URI,我们将XML有效负载发送到。 我们从服务所有者处收到XSD,我们已将其转换为JAXB对象,然后在Feign调用中进行封送和取消封送。 Feign有编码器和解码器的概念,您可以使用它来编写自己的映射器或使用提供的映射器(JAXBEncoder \\ JAXBDecoder)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM