Как создать документацию для эндпонтов в Swagger?

У меня нубский вопрос по сваггеру, с которым раньше никогда не работал. В общем, есть некое API на php (laravel), к которому мне поручили прикрутить Swagger документацию. Около 60 эндпоинтов. У многих реквестов ответы содержат по 20 объектов разной степени вложенности с десятками свойств. Я почитал про сваггер, и там описан путь создания документации в виде добавления здоровенных комментариев к каждому эндпоинту. Затем нужно поставить composer require "darkaonline/l5-swagger", чуток поднастроить конфиг и автогенерировать документацию командой php artisan l5-swagger:generate. Попробовал - работает. Но комменты настолько большие, что мне... запретили их писать. Типа, код отдельно, документация отдельно.

С другой стороны, там же, на сайте сваггера, предлагается воспользоваться редактором https://editor.swagger.io/ и писать готовый JAML/JSON вручную. То есть, я должен сделать постманом запрос и превратить вручную ответ сервера в портянку сваггеровского формата. Мне сказали "о, так и делай!" Я попробовал и охренел: средний ответ от эндпоинта занимает по 200-300 строк.

Итак, вопрос: как же создать документацию для эндпонтов в сваггере? Вот так, как я описал во втором пункте? Или можно как-то автоматизировать? У меня сейчас уходит час на один эндпинт, да и то боюсь, что где-то что-то упущу или перепутаю, и документация получится неправильной. И это не говоря о том, что никто её скорее всего не будет поддерживать в актуальном виде (править ЭТО добровольцев не найдётся), а потому работа будет мало того что унылой, так ещё и бесполезной.

PS: Пока искал решение, нашёл https://github.com/rakutentech/laravel-request-docs - пакет частично решает проблему, позволяя хотя бы описания реквестов и валидацию засунуть в код. Но его использование мне тоже запретили.


Ответы (0 шт):