marmyshev / edt-plugins

Общрий репозиторий-агреггатор всех плагинов для 1C:EDT. Идеи для разработки новых плагинов для 1C:EDT, платформы 1С:Предериятия и продуктов 1С, интересные плагины Eclipse которые можно/нужно использовать в 1C:EDT.
https://marmyshev.github.io/edt-plugins/
MIT License
165 stars 16 forks source link

Swagger для http-сервисов в 1С и генерация документации API сервисов #23

Open zeegin opened 3 years ago

zeegin commented 3 years ago
  1. Подготовка OpenApi json по исходникам конфигурации
  2. Кодогенерация http сервиса по имеющейся OpenApi спецификации
  3. Быстрое разворачивание swagger UI.
marmyshev commented 3 years ago

Прикольная идея))

marmyshev commented 3 years ago

Быстрое разворачивание swagger UI.

А зачем это делать из инструмента в EDT? типа "посмотреть локально что получилось"?

или это про публикацию сгенерированного сайта документации где-то в домене?

zeegin commented 3 years ago

Ну это как консоль отладки, чтобы быстро можно было приступить к тестированию.

Вовне тоже можно сгенерировать ну или просто OpenApi json отдавать.

marmyshev commented 3 years ago

@zeegin ты сделаешь такой плагин?)) я хочу его!

zeegin commented 3 years ago

@zeegin ты сделаешь такой плагин?)) я хочу его!

Подожду пока, может кто еще захочет сделать ;)

zeegin commented 3 years ago

Что нашел из имеющегося:

  1. Расширения для конфигурации которые передают свагер спецификацию, откуда берут еще не ковырял https://github.com/zerobig/swagger-1c
  2. Консольная утилита на оскрипте которая собирает спецификацию свагера по исходникам, как я понял по метаданным и доккомментам https://github.com/botokash/swagger
malikov-pro commented 3 years ago

Перехожу с RAML на OpenAPI на уровне прототипирования. В применении к 1С вижу проблему с описанием разделов кроме верхнего уровня path. Список путей относительно просто собирается из списка HTTP сервисов, от туда же можно получить список параметров "in: path". Дальше сложнее описывается либо как аннотация к обрабатывающей функции (operationId: "") и собирается через плагин, либо через функции хелперы. Parameters "in: query", формат данных, схема данных, коды ответа ....

У меня была попытка сделать HTTP сервис полностью кодом, есть наработки по использованию схемы OpenAPI для роутинга.

Если дальше разбирать вопрос, то нужно для каждого узла описания продумывать как это будет обрабатываться в 1С, после писать пример реализации и делать конвертеры в обе стороны doc<->code.

akpaevj commented 11 months ago

Взял в работу

marmyshev commented 9 months ago

https://github.com/akpaevj/OpenAPI.1C - но пока нет p2 репы для установки.

akpaevj commented 9 months ago

https://github.com/akpaevj/OpenAPI.1C - но пока нет p2 репы для установки.

Плагин проходил внутреннее тестирование. Скоро обновлю репозиторий, создам репу