Creo que uno de los mayores puntos débiles al trabajar con microservicios es asegurarse de que las API estén bien documentadas y que las API no cambien su comportamiento sin afectar las aplicaciones posteriores. Este problema se amplifica cuando tiene muchos servicios que son interdependientes entre sí. Quizás en ese momento estás haciendo mal los microservicios, pero estoy divagando.
Digamos que hemos heredado 20 microservicios que son propiedad de diferentes equipos y no existe una documentación clara sobre qué aplicación utiliza qué punto final de la API de otra aplicación. ¿Existe una forma prescrita de documentar esto? Al principio pensé en analizar los puntos finales de cada aplicación y agregarlos a una tabla de base de datos, luego crear una relación FK entre cada aplicación y la ruta de una aplicación en una tabla de muchos a muchos (casi todas estas son aplicaciones de rieles). Pero no estoy seguro si esta es una buena manera de manejar esto, o si estoy reinventando la rueda aquí.
En retrospectiva, esta podría ser una forma no tan mala de documentar la interacción de la aplicación si está comenzando con microservicios desde cero. Esto solo exigiría que se mantenga una única fuente de verdad mediante el uso de una base de datos y que cualquier cambio en los puntos finales se realizaría en la aplicación junto con el cambio en la base de datos. Pensamientos?
Creo que una buena idea es crear un diagrama de integraciones e incluirlo en su repositorio. Elija alguna herramienta gratuita (como draw.io) que pueda exportar el diagrama en un archivo XML o JSON y confirme este archivo en su repositorio. Si usa Github o Gitlab, genere la imagen de este diagrama e inclúyala en el Wiki o incluso en el archivo README.md, de modo que la imagen sea visible cada vez que el desarrollador visualice el repositorio desde el navegador.
Se puede usar la misma estrategia para la base de datos.
Acerca de la documentación de recursos de API, Swagger es una buena opción.
Esto es un problema, seguro.
fuente