2012-01-09 15 views
8

Nos gustaría tener una configuración en la que al implementar nuestros servicios web en nuestro servidor de transición, nos notifiquen si hay cambios importantes en los contratos de WSDL al compararlos con el WSDL de nuestro sitio de producción.¿Cómo detectar los cambios bruscos en los contratos WSDL?

¿Hay alguna herramienta o servicio que pueda ayudar a hacer esto?

Probado Membrane WSDL comparer pero esto arrojó java.lang.StackOverflowError cuando probarlo :)

+0

¿Qué define como un cambio ininterrumpido? Cualquier cambio en las construcciones WSDL existentes puede tener un efecto en cualquier programa que lo use. Entonces, un cambio ininterrumpido es la adición de una nueva función y/o un cambio a las estructuras existentes que no utilizan ningún programa en su sistema (¿es esa parte del código la que puede proporcionar para responder la pregunta)? –

+0

Tal vez la definición de cambio no sea clara, ya que depende de cómo el cliente esté utilizando el servicio. Sin embargo, esperaría que, por ejemplo, agregar una nueva operación no rompería ningún cliente, pero el cambio de nombre de operaciones/tipos/parámetros está rompiendo cambios. Idealmente, una herramienta podría enumerar los cambios en un contrato, luego podríamos decidir si los cambios son aceptables. El objetivo general es evitar la publicación de cambios accidentales en el contrato, como si alguien hubiera cambiado el nombre de un tipo sin saber que había sido expuesto por el servicio web. –

+0

@Ira También le pregunté a [esta pregunta] (http://stackoverflow.com/questions/8786935/what-are-considered-non-breaking-or-backwards-compatible-changes-to-a-wsdl-contr) following tu comentario. –

Respuesta

3

Primera; No estoy al tanto de tales herramientas.

También respondí la "otra" pregunta. En cuanto a las directrices publicadas allí, diría que debería ser posible hacer su propio (Posible, no fácil :).

Hice un trabajo similar en el pasado; aunque no para WSDL sino para otro dialecto. Mi enfoque fue;

  1. analizar el WSDL/esquema como XML regular (Después de todo son los propios dialectos XML) (esquema puede ser difícil sin embargo)
  2. construir un modelo en memoria
  3. Definir reglas y aplicarlas

La pieza WSDL es más fácil ya que hay un número limitado de construcciones; Schema sería complicado pero aún factible, supongo.

Cuestiones relacionadas