Ответ 1
SWAGGER, вероятно, стоит того, чтобы вам было нужно. Я использую его для документирования точек входа REST, представленных java-приложением с использованием Джерси, но похоже, что вы можете использовать его и на других языках.
Было опубликовано много вопросов и ответов о API-интерфейсах REST/HTTP и т.д., но ни один из них не содержит много информации по следующему вопросу:
Какие инструменты доступны/используются для документирования API HTTP-RPC? Какие инструменты являются лучшими?
Подобный вопрос (специфичный для ASP.NET) с января 2009 года можно найти здесь, но без ответов.
Я занимаюсь разработкой нескольких API как профессионально, так и для личных проектов (.NET MVC/OpenRasta, PHP, Coldfusion и т.д.), и я не нашел ничего, чтобы помочь документировать эти API. Я не ищу автогенерацию на основе анализа/скручивания кода или что-то в этом роде. Поскольку вы, вероятно, уже знаете, что RESTful/HTTP-API должен быть агентом клиента и платформы; поэтому я ожидал бы, что любой инструмент документации будет таким же.
Особенности, которые может иметь достойный инструмент:
Вот несколько примеров того, что я считаю достойной документацией API/ссылкой (-ами):
http://dev.twitter.com/doc/post/statuses/destroy/:id
http://www.salesforce.com/us/developer/docs/api_rest/index.htm
http://www.flickr.com/services/api/
SWAGGER, вероятно, стоит того, чтобы вам было нужно. Я использую его для документирования точек входа REST, представленных java-приложением с использованием Джерси, но похоже, что вы можете использовать его и на других языках.
Одна из причин, по которой такой инструмент не существует, заключается в том, что документация RESTful API не должна включать любой из этих элементов:
Документация RESTful API связана с документированием используемых типов носителей и их связанной семантикой приложений. Вы должны искать что-то, что больше похоже на this.
Приведенными примерами являются API-интерфейсы RPC, основанные на HTTP, поэтому они требуют такой документации о конечных точках. Они RESTful только по названию. Теперь, почему люди не создают инструменты для автоматического документирования API-интерфейсов RPC на основе HTTP, я не могу вам сказать. Может быть, это потому, что люди, которые пишут эти API, настолько заняты, что им не хватает времени на разработку инструментов для документации!
После долгих исследований я обнаружил, что это не инструмент, который делает именно то, что я хочу. Там есть ряд инструментов, которые являются очень важным шагом в правильном направлении, но часто зависят от языка и не создают справочную документацию API HTTP/RPC, а скорее справочную документацию по Code/Library/API.
В результате я планирую создать инструмент, который мне нужен /envision с нуля. Если/когда мне нужно что-то показать, я обновлю свой ответ.
Вы должны взглянуть на приложение Swagger, как уже упоминалось @zim2001. Он имеет компонент Swagger-ui, который представляет собой простое приложение html и javascript, которое считывает данные json, записанные в бэкэнд-приложении. Существуют адаптеры для количества языков, включая php и java.
Если вы используете инфраструктуру Symfony2 для PHP, вот готовый к использованию пакет для автоматической генерации сервисной документации RESTful:
Одной из вещей, которые мне не нравятся в таких генераторах, является отсутствие переводов, поэтому, если вы хотите предоставить документацию по вашему API, представленную через службы RESTful на многих языках, вы не можете.