2011-07-26 37 views
32

Estoy implementando un servicio web y he implementado una versión REST y SOAP para ver cuál satisface mis necesidades. He decidido elegir REST por su simplicidad y que probablemente desarrolle una aplicación de iPhone para consumirlo. Mi pregunta es simple, ¿es posible crear un WSDL o WADL para mi servicio REST y es necesario?¿Servicio web REST WSDL?

Gracias

Respuesta

35

Con un buen servicio RESTful, no es necesario generar WADL (y mucho menos el WSDL que no se ajusta bien), ya que se autodescribirá. Al decir "autodescribirme" me refiero específicamente a que entregará documentos que describan todos los recursos (relevantes) publicados por el servicio, y que el uso de una solicitud HTTP OPTIONS estándar en cualquiera de estos generará información básica sobre cómo interactuar. El único beneficio real del uso de WADL es que le permite a la persona que llama descubrir los esquemas de los documentos complejos con los que necesita trabajar antes de tiempo; REST por sí mismo no proporciona ayuda allí (y algunos RESTians creen que hacer tales cosas es contraproducente, y no estoy seguro de que esté de acuerdo).

Por supuesto, eso no captura los patrones de interacción más profundos, pero tampoco lo hacen la gran mayoría de las descripciones WSDL de servicios por lo que no hay cambios allí.


Para el registro, que utilizan Apache CXF para crear servicios REST (utilizando JAX-RS) y que publica WADL para ellos.

3

Por supuesto que es posible, pero por respuesta si es necesario o no, que no proporcionan suficiente información.

Le sugiero que eche un vistazo en el sitio de developerworks del ibm que proporciona un interesante artículo sobre el tema http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/
Espero que ayude.


En sentido estricto, con WSDL 1.0 se puede' t, pero con WSDL2 puedas, porque fue desarrollado para aceptar este tipo de demanda,

" ... WSDL 2.0 en un WS-I perfil que atendió los requisitos para servicios web de estilo REST. La adición de GET en SOAP 1.2 y varias adiciones en WSDL 2.0 como la seguridad de la operación, la capacidad de describir mensajes que hacen referencia a otros servicios web y la mejora del enlace HTTP ahora es posible describir los servicios web de estilo REST. ", Arthur Ryman.

1

Creo que WSDL no es apropiado para REST y WADL no es necesario. HTTP ya expone lo que WADL podría describir en un archivo separado. Por ejemplo, el encabezado "Permitir" devuelve el método HTTP permitido, y la Negociación de contenido es para elegir el formato correcto.

3

Como @GiuliaDiFederico dijo, "por supuesto es posible" (con WSDL2), mostrando un buen enlace de origen sobre cómo hacerlo. @DonalFellows, por otra parte, no alienta el uso de WSDL ...

Creo el uso de WSDL es una cuestión de

  • FORMALIZACIÓN DE NIVEL: con WSDL se puede expresar con mayor formalmente todos los detalles relevantes de su servicio web.
  • NIVEL DE ESTABILIDAD: si necesita contratos a largo plazo, y evita riesgos de cambios en el entorno donde su servicio web está expuesto, WSDL ayuda a mantener la estabilidad.
  • NECESIDAD DE ESTÁNDARES: si los clientes prefieren los servicios web que se pueden decir "estándar", utilice estándares. El único es W3C, y W3C requiere XML, SOAP y WSDL.
5

El W3C ha hecho una recomendación formal para un REST documentation standard basado en WSDL 2.0. Aquí es una cita de la IBM article:

Los servicios Web término se asocia típicamente con Instrucciones de uso o servicios basados ​​en la acción usando jabón y la WS * normas, como WS-Addressing y WS-Security. El término servicios web REST generalmente se refiere a una arquitectura de servicios web basada en recursos que usa HTTP y XML. Cada uno de estos estilos de servicios web arquitectónicos tiene su lugar, , pero hasta hace poco, el estándar WSDL no era compatible con ambos estilos . El enlace WSDL 1.1 HTTP fue inadecuado para describir las comunicaciones de con HTTP y XML, por lo que no había forma de que describa formalmente los servicios web REST con WSDL. La publicación de WSDL 2.0, que se diseñó con servicios web REST en mente, como una recomendación del Consorcio World Wide Web (W3C) significa que ahora hay un lenguaje para que describe los servicios web REST.

Cuestiones relacionadas