Я искал последние пару дней, чтобы каким-то образом документировать API для архитектуры микросервисов, над которой я работаю. Во-первых, я дам очень быстрое описание проекта:Документирование API шины сообщений?
- Написано в C#, .NET 4.6.1
- Использование NetMQ с х-паб/х-суб-прокси как «сообщение брокера»
- Все коммуникации объекты равнину C# сериализовать в формате JSON
- Некоторые клиенты JavaScript в браузере, другие приложения .NET
короткий этого является то, что я хотел бы знать, как другие люди, документировать модели, опубликованные в их сообщении bu s. Я видел немало проектов (например, Swagger), которые помогают документировать вызовы REST, но мы не используем REST. Наше приложение практически полностью основано на событиях с обменом сообщения pub-sub с использованием JSON.
Моя первая мысль заключалась в том, чтобы задокументировать JSON с помощью JSON-Schema и использовать инструмент для преобразования этого файла в хорошо отформатированные документы API. Это, вероятно, будет работать нормально, но меня беспокоит то, что, похоже, нет никаких инструментов для автоматизации генерации схемы как части процесса сборки. Если наши модели отклоняются от документации API, я хочу, чтобы это была ошибка сборки. Еще лучше, если бы какой-то способ автоматически генерировать базовую документацию как часть процесса сборки, документы могли быть синхронизированы.
Как вы, ребята, это делаете? Отсутствие инструментов документации, характерных для архитектуры шины сообщений в пользу REST, заставляет меня подвергнуть сомнению наше решение использовать архитектуру обмена сообщениями на основе очередей сообщений. :)
Благодарим вас за ссылку на NJsonSchema! Это будет очень полезно. Я начал работать над парсером кода на основе Roslyn, который может анализировать комментарии из нашего кода модели и автоматически создавать документацию. Я использовал эту страницу в качестве справочника: https://github.com/dotnet/roslyn/wiki/Getting-Started-C%23-Syntax-Analysis Я планирую создавать Markdown, который запускается через mkdocs в формате readthedocs. При проверке схемы в процессе сборки и создании автоматической документации я думаю, что это решение может работать. Я удивлен, что вокруг такого рода инструментов нет больше инструментов! – user1094821
@ user1094821 - рад, что вы сочли это полезным. дайте мне знать ваше окончательное решение ... –