Tengo un servidor HTTP personalizado integrado en C# que acepta solicitudes de servicios REST y responde con XML o JSON (dependiendo de qué el cliente necesita). Los servicios REST se definen en el tiempo de ejecución a partir de una configuración basada en la base de datos, varían ampliamente en los parámetros de entrada y los tipos de salida, y está funcionando perfectamente en producción.Creando y exponiendo un servicio SOAP y su WSDL dinámicamente en C# (con un escucha TCP personalizado!)
Sin embargo, me gustaría agregar el acceso SOAP a los mismos servicios, con los WSDL apropiados también. Dado que los servicios disponibles no están codificados duro, esto significa:
- Publicación de un WSDL generado en tiempo de ejecución a partir de las definiciones de métodos en la base de datos
- análisis sintáctico peticiones SOAP entrantes, la cartografía de ellos a dichas definiciones, y asegurándose las solicitudes se ajustan a la firma del método antes de manipularlos
- una vez que se maneja la respuesta, la creación de una reunión de respuesta SOAP del WSDL para devolver los resultados
la documentación de MS (y Google) documentos utilizando Visual Studio para generar web servi ces (y WSDL) en el momento del diseño, exponiendo cosas usando WebMethods, ASP.NET MVC, etc. Esto no es lo que estoy buscando, ya que no hay definiciones de métodos a partir de las cuales generar los enlaces en tiempo de diseño.
¿Alguien tiene alguna idea (por ejemplo, kits de herramientas para el análisis SOAP sin procesar) y pensamientos sobre la generación de WSDL a partir de firmas de métodos creados dinámicamente, etc.? ¿Alguna idea de cómo uno podría ir construyendo tales cosas si no? Estoy buscando evitar reinventar la rueda si es posible.
PD: Claramente hay material estandarizado en .NET Framework para esto, ya que Visual Studio lo hace por usted, ¿alguna idea de cómo acceder a eso en un nivel inferior, en tiempo de ejecución?
_ "Los servicios REST se definen en tiempo de ejecución desde una configuración basada en base de datos" _ - Me estremecí cuando lo leí. ¿No es eso un infierno de mantenimiento y solución de problemas? – CodeCaster
Estoy lidiando con una situación muy similar preguntándome si la respuesta aceptada funcionó para usted –
np-hard - Hice una prueba de concepto e hizo lo que se pretendía. Sin embargo, no he distribuido nada a la producción, ya que en general pedirle a los clientes que implementen el servicio REST parecía una opción más confiable que el análisis manual, y cualquier error que pueda introducirse a través del complejo proceso de analizar manualmente las solicitudes SOAP. –