JABÓN, DESCANSO Y CREATIVIDAD POPULAR
SOAP necesita un documento de descripción como WSDL porque cada recurso se puede consumir con diferentes mensajes, no hay una definición en el protocolo sobre las restricciones a los posibles nombres / mensajes que puede manipular un recurso.
Por ejemplo, en SOAP, su servicio web que permite a los clientes manipular a un usuario puede exponer la operación que crea un usuario en muchos mensajes diferentes, como:
addUser
createUser
insertUser
Por supuesto, estos son solo algunos mensajes de muestra, porque he visto muchos nombres de métodos de servicios web divertidos. Hay personas realmente creativas por ahí.
Por otro lado, si está exponiendo su sistema subyacente usando una API web que realmente respeta los principios REST, el cliente solo necesita saber que tiene un recurso llamado Usuarios, porque hay un 99% de posibilidades de que pueda crear un usuario en este camino
POST /Users
Y esto ocurre para cada operación que desea exponer utilizando SOAP o una API web REST.
A pesar de ser un protocolo SOAP, que restringe lo que puede o no hacer, y REST es una arquitectura de estilo, que deja muchos puntos abiertos sobre cómo hacer las cosas. Hay esfuerzos para definir convenciones sobre cómo exponer y consumir las API web REST.
DESCRIBIR UN RESTO API WEB
En el campo de cómo describir un REST de API web, puedo citar Swagger . No es un intento de crear un WSDL como REST api web, pero es un buen intento de crear un estándar abierto para describir REST apis web.
Swagger es una especificación e implementación completa del marco para describir, producir, consumir y visualizar servicios web RESTful.
Utilizo mucho Swagger y realmente me encanta, principalmente porque la interfaz de usuario Swagger te permite generar una consola y documentación en vivo para tu API web.
Hay muchas implementaciones de Swagger para la mayoría de los lenguajes: C #, Java, Python, Ruby, etc.
Si está utilizando la API web ASP .NET, hay algunos proyectos para generar automáticamente la especificación Swagger, como Swagger.NET
GENERANDO CLIENTES A UN RESTO API WEB
Debido a que las restricciones de REST, como el conjunto limitado de verbos (GET, POST, PUT, DELETE, etc.) no es tan difícil generar una biblioteca de cliente en una API web REST.
Proyectos como WebApiProxy pueden generar fácilmente clientes con C # y Javascript.
CONVENIOS PARA EL RESTO API WEB
Para que nuestras vidas sean más fáciles como desarrolladores, es bueno definir algunas convenciones de cómo se comportará nuestro REST de la API web, el mejor esfuerzo que conozco en este campo es el muy bueno Apigee - Libro electrónico de diseño de API web . El libro electrónico no es un intento de crear una biblia o un mantra sobre cómo diseñar su API, sino más bien una colección de convenciones observadas en las API REST de la gran web, como Twitter, Facebook, Linkedin, Google, etc.