web services - usar - ¿Servicio web REST WSDL?
wsdl para servicios rest (6)
Como dijo @GiuliaDiFederico, "por supuesto es posible" (con WSDL2), mostrando un buen enlace de origen sobre cómo hacerlo. @DonalFellows, por otro lado, no fomenta el uso de WSDL ...
Creo que el uso de WSDL es una cuestión de
- NIVEL DE FORMALIZACIÓN : con WSDL puede expresar más 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 en el que su servicio web está expuesto, WSDL ayuda a mantener la estabilidad.
- NECESIDAD DE ESTÁNDARES : si los clientes prefieren los servicios web que pueden decirse que cumplen con los estándares, use estándares. El único es W3C, y W3C requiere XML, SOAP y WSDL.
Estoy implementando un servicio web y he implementado una versión REST y SOAP para ver cuál se ajustaba a mis necesidades. He decidido elegir REST por su simplicidad y que probablemente desarrollaré una aplicación para iPhone para consumirla. Mi pregunta es simple, ¿es posible crear un WSDL o WADL para mi servicio REST y es necesario?
Gracias
Con un buen servicio RESTful, no es necesario generar WADL (y mucho menos el WSDL que no se adapta bien) para ello, porque 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 los servicios, por lo que no hay cambios allí.
Para el registro, uso Apache CXF para crear servicios RESTful (usando JAX-RS) y eso publica WADL para ellos.
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.
El W3C ha hecho una recomendación formal para un estándar de documentación REST basado en WSDL 2.0 . Aquí hay una cita del artículo de IBM :
El término servicios web generalmente se asocia con servicios basados en operaciones o acciones que utilizan SOAP y los estándares WS *, 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 arquitectónicos de servicios web tiene su lugar, pero hasta hace poco, el estándar WSDL no era compatible con ambos estilos. El enlace HTTP WSDL 1.1 no era adecuado para describir las comunicaciones con HTTP y XML, por lo que no había forma de describir formalmente los servicios web REST con WSDL. La publicación de WSDL 2.0, que fue diseñada con los servicios web REST en mente, como una recomendación del World Wide Web Consortium (W3C) significa que ahora hay un lenguaje para describir los servicios web REST.
Por supuesto que es posible, pero para responder si es necesario o no, no proporcionó suficiente información.
Le sugiero que eche un vistazo al sitio de developerworks de ibm que proporciona un interesante artículo sobre el tema http://www.ibm.com/developerworks/webservices/library/ws-restwsdl/
Espero eso ayude.
Estrictamente, con WSDL 1.0 no puede, pero con WSDL2 puede, porque fue desarrollado para aceptar este tipo de demanda,
"... WSDL 2.0 en un perfil WS-I que atendía los requisitos para los servicios web de estilo REST. La adición de GET en SOAP 1.2 y varias adiciones en WSDL 2.0, como la seguridad operacional, la capacidad de describir mensajes que hacen referencia a otros sitios web. servicios, y la vinculación HTTP mejorada ahora hacen posible describir los servicios web de estilo REST ", Arthur Ryman .
RestDoc intenta crear un marco de documentación simple para los recursos REST. Un navegador está disponible a través de restdoc-renderer .
También ofrece anotaciones Java para permitir la creación sobre la marcha de la documentación RestDoc. Las implementaciones están disponibles para Jersey 1.xy JAX-RS 2.0 .