edt-plugins icon indicating copy to clipboard operation
edt-plugins copied to clipboard

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

Open zeegin opened this issue 3 years ago • 10 comments

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

zeegin avatar Mar 20 '21 21:03 zeegin

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

marmyshev avatar Mar 23 '21 07:03 marmyshev

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

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

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

marmyshev avatar Mar 23 '21 07:03 marmyshev

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

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

zeegin avatar Mar 23 '21 07:03 zeegin

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

marmyshev avatar Mar 23 '21 07:03 marmyshev

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

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

zeegin avatar Mar 23 '21 07:03 zeegin

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

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

zeegin avatar Mar 24 '21 04:03 zeegin

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

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

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

malikov-pro avatar Apr 12 '21 05:04 malikov-pro

Взял в работу

akpaevj avatar Dec 11 '23 06:12 akpaevj

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

marmyshev avatar Feb 03 '24 02:02 marmyshev

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

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

akpaevj avatar Feb 05 '24 11:02 akpaevj