2010-04-22 18 views
5

Sé que WSDL es para definir servicios web basados ​​en SOAP pero en la mayoría de los WSDL que vi en la red, en WSDL también está definido el "servicio web" RESTful -http :Unión.Cómo generar cliente RESTful en JAVA para REST definido en WSDL

Para generar el cliente para SOAP utilicé la herramienta wsimport de JAX-WS (también genera clases de cliente para REST pero no funciona).

Entonces, la pregunta es, ¿cómo generar un cliente REST basado en el WSDL?

Respuesta

3

Nunca he oído hablar de alguien que use WSDL para generar clientes REST. WADL sí, pero no WSDL.

De todos modos, generar clientes para los servicios REST no tiene sentido. Si crees que quieres hacerlo, te estás perdiendo los beneficios de REST y tratar de seguir las restricciones de REST te va a hacer hacer un trabajo extra por nada.

+0

También había leído en la red que WSDL no debe ser para definir REST. Pero en muchos (realmente muchos) encontré descrito REST. Por ejemplo: http://services.aonaware.com/DictService/DictService.asmx?WSDL http://www.webservicex.net/ValidateEmail.asmx?WSDL http://www.webservicex.com/globalweather .asmx? WSDL http://www.webservicex.net/WeatherForecast.asmx?wsdl – Milan

+0

Eso es interesante de saber. Había escuchado que las versiones recientes de WSDL podían describir las API de HTTP, pero nunca las había visto. Todavía creo personalmente que los documentos de metadatos como este son completamente innecesarios y potencialmente dañinos para los sistemas REST. –

+0

Un gran +1 a la respuesta de Darrel. Si los clientes dependen de las descripciones de servicios obtenidas en el momento del diseño, su sistema no es RESTful. –

1

Actualmente, puede autogenerar un talón similar a SOAP para JAX-RS, pero usa WADL, que creo que es una variante WSDL.

Apache CXF does this y si eso no funciona para usted, también creará automáticamente puntos finales SOAP y clientes SOAP.

0

Puede usar RestDescribe para generar y compilar WSDL, puede generar clientes en php, ruby, python, java y C# usando esto. Genera código limpio y hay un buen cambio que tienes que modificar un poco después de la generación del código, puedes encontrar buena documentación y pensamientos subyacentes detrás de la herramienta here.

Hay pocos interesantes y útiles WADL tools mencionados en wintermute.

0

IBM Developer network: WSDL2 can describe REST services.

Creo que en los programadores de la corriente principal es SOAP guerra santa (clásico): - Servicios REST. Nadie quiere esta guerra, estas concepciones pueden coexistir. Veo que esta es una opinión no solo de mi y poca gente, sino que también tiene un apoyo cada vez mayor en los estándares.