Swagger для 1С.

21.10.19

Интеграция - WEB-интеграция

Решение для формирования Swagger спецификаций, описывающих HTTP сервисы конфигураций 1С.

Оглавление:

Введение
Простой пример
Инструменты
Настройка Simple-UI
Первый результат
Делаем красиво
Заключение
Благодарности

 

Введение

В данной статья я хотел бы показать решение для создания Swagger спецификаций на основании конфигураций 1С.

Что же такое Swagger спецификация? Небольшая выдержка с Wiki:

The OpenAPI Specification (изначально известная как Swagger Specification)— формализованная спецификация и экосистема множества инструментов, предоставляющая интерфейс между front-end системами, кодом библиотек низкого уровня и коммерческими решениями в виде API. Вместе с тем, спецификация построена таким образом, что не зависит от языков программирования, и удобна в использовании как человеком, так и машиной.

Относительно назначения, OpenAPI рассматривается как универсальный интерфейс для пользователей (клиентов) по взаимодействию с сервисами (серверами). Если спроектирована спецификация для некоторого сервиса, то на её основании можно генерировать исходный код для библиотек клиентских приложений, текстовую документацию для пользователей, варианты тестирования и др. Для этих действий имеется большой набор инструментов для различных языков программирования и платформ.

Все описание создаваемых нами HTTP сервисов на платформе 1С должно бы выглядеть так:

Это позволит публиковать документацию сервисов 1С в общепринятом, стандартизованном формате, общаясь с внешними командами общепринятом в среде профессионалов языке спецификаций API, не дополняя общение постыдными фразами вида "ой, у нас 1С, у нас нет Swagger, наш программист сейчас напишет все в Ворде". Swagger - это документация которая не врет и не отстает от основного кода, поскольку является его продолжением и создается автоматически. Никаких больше "документаций сервиса в Word!"

Что бы получить желаемый результат, мной была создана OneScript библиотека - swagger, которая реализует формирование второй редакции OpenAPI спецификации.

 

Простой пример

Более детальное описание возможностей библиотеки swagger я рассмотрю на примере создания нового HTTP сервиса в произвольной конфигурации. Нижеизложенный текст будет показывать сопоставление содержимого метаданных/модулей конфигурации с визуальным представлением генерируемой спецификации.

 

Постановка задачи

Возникла потребность создать API управления доступом в систему 1С. Необходимые возможности:

  • Получить список всех пользователей
  • Получить все свойства пользователя
  • Изменить все свойства пользователя
  • Изменить одно свойство пользователя
  • Создать нового пользователя
  • Удалить существующего пользователя

 

Подготовка метаданных

Добавим в дерево метаданных новый HTTP сервис:

  • Имя UserAPI (имя сервиса)
  • Синоним API управления доступом (описание сервиса)
  • Комментарий 1.0 (версия сервиса)

Общее описание сервиса

Создадим наборы шаблонов URL:

  1. Для получение списка пользователей:
  • Имя ПользователиСписок
  • Синоним user (tag)
  • Шаблон /user/list (path)
  • Методы:
    • HTTP метод GET
      • Комментарий Получить список пользователей (определение операции)

  1. Для работы с конкретным пользователем:
  • Имя Пользователь
  • Синоним user (tag)
  • Шаблон /user/{userID}
  • Методы:
    • HTTP метод GET
      • Комментарий Получить свойства пользователя (определение операции)
    • HTTP метод PATCH
      • Комментарий Изменить свойство пользователя (определение операции)
    • HTTP метод PUT
      • Комментарий Изменить все свойства пользователя (определение операции)
    • HTTP метод DELETE
      • Комментарий Удалить пользователя (определение операции)

  1. Для создания нового пользователя:
  • Имя ПользовательНовый
  • Синоним user (tag)
  • Шаблон /user
  • Методы:
    • HTTP метод POST
      • Комментарий Создать нового пользователя (определение операции)

Так же платформой были созданы обработчики в модуле HTTP сервиса:

 
 Модуль HTTP сервиса

Болванка нашего сервиса готова.  Выгрузим конфигурацию в файлы, используя каталог D:\ПримерКонфигурация\. Далее займемся установкой и настройкой необходимых инструментов.

 

Инструменты

Установим или обновим OneScript до актуальной версии (на момент написания статьи 1.1.1). Далее установим библиотеку swagger:

opm install swagger

Так же потребуется наличие IIS на своей машине или ином сервере. Но все примеры ниже будут в рамках localhost.

Скачаем содержимое папки dist из официального репозитория Swagger-UI.

Скачаем содержимое папки simple-ui из репозитория библиотеки swagger.

 

Настройка Simple-UI

Simple-UI представляет собой пример каталогизатора спецификаций, позволяющий хранить, актуализировать и отдавать спецификации по запросу. Выполнен в виде HTTP сервисов на OneScript. Так же приведен пример модификацию Swagger-UI для взаимодействия с нашим каталогизатором.

 

Развертывание spec-admin

Описание, создание и публикация HTTP сервисов на OneScript хорошо рассмотрены тут и тут.

В IIS добавим новое приложение:

 

Проверим готовность сервиса обычным GET запросом на:

http://localhost/onec-swagger-admin/list.os

В теле ответа от сервиса мы должны получить "[]".

 

Развертывание Swagger-UI

В IIS добавим новый виртуальный каталог:

Проверим в браузере:

Далее заменим файл index.html в каталоге onec-swagger-ui на аналогичный файл из Simple-UI.

Завершающим этапом откроем в любом редакторе новый файл index.html и заменим в строчке:

var admin_url = 'http://localhost/onec-swagger-admin/'

"localhost" на адрес вашего IIS сервера:

var admin_url = 'http://ВашСерверIIS/onec-swagger-admin/'

 

Первый результат

Из репозитория библиотеки swagger скачаем скрипт upload.os. У нас уже есть выгруженная в файлы конфигурация D:\ПримерКонфигурация\.

Открываем терминал и выполним следующую команду:

oscript upload.os -name SimpleAPI -path D:\ПримерКонфигурация\ -type xml -adminurl localhost/onec-swagger-admin/

Если команда прошла без ошибок, любуемся результатом на http://localhost/onec-swagger-ui/

 

Делаем красиво

Рассмотрим более подробное описание метода PUT /user/{userID}:

Как мы видим, библиотекой swagger в сформированной спецификации явно описан параметр userID с пометкой входящий и расположением в пути запроса. Так же по умолчанию подставляется единственный код ответа сервиса - 200 (см. стандарт RFC7231) и тип данных в теле ответа считается обычным текстом (см. стандарт RFC6838).

На данный момент сформированная спецификация основана только на метаданных конфигурации. Но мы ее сделаем еще информативнее.

 

Комментарий по стандарту

В стандартах разработки на ИТС у нас есть такой замечательный документ. Он достаточно подробно показывает как нам правильно описывать свои процедуры и функции.

Воспользуемся данным стандартом, и добавим подробное описание функций в модуле сервиса:

 
 Модуль HTTP сервиса

Обновим спецификацию, проверяем что в каждый метод добавилось описание:

Следующим шагом опишем входящие параметры, которые явно заданы в пути (шаблон /user/{userID}):

 
 Модуль HTTP сервиса

Обновим спецификацию, проверяем описание параметра userID:

Так как в логике работы некоторых методов подразумевается получение данных из тела запроса или в строке самого запроса, добавим в соответствующие комментарии:

  • для методов PUT и POST добавим описание параметра body (ключ-слово библиотеки swagger)
  • для метода PATCH добавим описание параметров property и value (напомню, логика обработки данного метода подразумевает изменение конкретного свойства)
 
 Модуль HTTP сервиса

Обновим спецификацию, проверяем описание параметра body:

а так же для метода PATCH:

 

Комментарий не по стандарту

Рассмотрим ситуацию, что по переданному userID пользователь в системе не был найден. Тогда наш сервис должен вернуть код ответа 404. А если в процессе изменения свойства пользователя в базе 1С произошла ошибка (все же пользуются транзакцией с попыткой) то вернем код ответа 500.

Поскольку потребность описать коды ответов HTTP сервиса не предусмотрена в стандарте ИТС, то в комментарии будем добавлять "нестандартный" блок:

// Коды ответов:
//   XXX - Описание
//

где XXX - код ответа по стандарту RFC7231.

Дописываем изменения в модуле:

 
 Модуль HTTP сервиса

Обновим спецификацию, проверяем блоки Responses:

 

Заключение

На данный момент, библиотека swagger выпущена как минимально жизнеспособный продукт (MVP). В планах стоят следующие задачи:

  1. Добавить поддержку формирования спецификации для конфигурации в формате проекта EDT.
  2. Найти приемлемый способ описания схемы объектов API в конфигурации 1С. Пока я вижу этот момент как описание в комментарии, примерно следующим образом:
// Параметры:
//   body - Объект(json):UserType - Пользователь
//    * Name - Строка - Имя
//    * ShowInList - Булево - Показывать в списке
//    * Roles - Массив из Строка - перечень ролей

что будет соответствовать объекту в json:

{
    "Name": "Name",
    "ShowInList": true,
    "Roles": [
        "Role"
    ]
}

и в спецификации будет описание в схеме:

{
    "definitions": {
        "User": {
            "type": "object",
            "discriminator": "UserType",
            "properties": {
                "Name": {
                    "type": "string"
                },
                "ShowInList": {
                    "type": "boolean"
                },
                "Roles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "Name",
                "ShowInList",
                "Roles"
            ]
        }
    }
}
  1. Научиться связывать спецификации с настройками публикации тестовых база и попробовать автотесты.

Буду рад любой конструктивной критике и предложениям.

 

Благодарности

Особую благодарность выражаю Овсянкину Андрею за помощь в подготовке данной статьи, а сообществу OneScript за отличный продукт и прекрасное комьюнити.

 

P.S. Никаких файлов для загрузки, все необходимое доступно по приведенным в статье ссылкам.

OneScript Swagger Swagger-UI

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15726    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17541    6    15    

13

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16350    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25735    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88569    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 21.10.19 11:24
2. chg 21.10.19 11:30 Сейчас в теме
3. ZeratulAyuris 21.10.19 11:43 Сейчас в теме
Очень своевременно, спасибо!
4. Жолтокнижниг 258 21.10.19 13:53 Сейчас в теме
Качественно.
Даешь swagger в 1с массы.
5. tanat74 66 21.10.19 15:51 Сейчас в теме
Большое спасибо. Очень давно искал такой механизм.
6. CodeNull 23.10.19 17:41 Сейчас в теме
Здравствуйте. Весьма годный и нужный инструмент. Но как вы сами написали, не хватает описания body для post запросов. Например, в нашем проекте post запросы это самая объемная часть, body некоторых весьма сложный по структуре (много полей и вложимость).

А что насчёт описания ответа (возвращаемое значение)?
7. botokash 389 24.10.19 05:32 Сейчас в теме
(6) Как я писал в заключении описание схемы данных, как в теле запроса, так и в теле ответа, обязательно будет в следующих релизах библиотеки. Сейчас вопрос стоит в том, как лучше сделать. Ну и конечно вопрос времени, пока занят другим проектом. Можете добавить репозиторий библиотеки на гитхабе в наблюдение, не пропустите обновление )
8. Evil Beaver 8107 10.12.19 15:19 Сейчас в теме
Столкнулся с обратной задачей - есть готовая спецификация API в виде OpenApi json и нужно сделать веб-сервис. Для многих языков есть готовые генераторы классов под такую спецификацию. Может автор и для 1С сделает? Надо всего-то XML с описанием веб-сервиса сгенерировать и модуль с заглушками методов. А потом это можно в исходники 1С подложить и готово!
9. botokash 389 11.12.19 06:45 Сейчас в теме
(8) Автор с самого начала задумывался над кодогенерацией) Пока проблема с наличием свободного времени.
34. Nikola23 696 26.05.20 09:04 Сейчас в теме
(8) Дай погонять описание. Может что получится.
35. Evil Beaver 8107 26.05.20 12:46 Сейчас в теме
36. Nikola23 696 26.05.20 17:10 Сейчас в теме
(35) Вы пишите: "есть готовая спецификация API в виде OpenApi json и нужно сделать веб-сервис".
Вот ту самую спецификацию можете скинуть?
37. malikov_pro 1292 15.06.20 13:00 Сейчас в теме
(8)
Надо всего-то XML с описанием веб-сервиса сгенерировать и модуль с заглушками методов.

Может лучше роуты кодом описать? У меня была попытка https://infostart.ru/public/1131305/, но народ не отреагировал.
Если чисто кодом то и в OneScript переложить не проблема.

Для начала нужны требования к результатам генератора.
10. 19077 14.01.20 18:13 Сейчас в теме
Очень нужная штука, больше нет новостей?
11. SLV66 28.01.20 13:31 Сейчас в теме
При установке столкнулись с ошибкой

C:\Program Files\OneScript\bin>opm install swagger
ПРЕДУПРЕЖДЕНИЕ - Ошибка получения списка пакетов с хаба ОсновнойСерверПакетов по причине {Модуль C:\
Program Files\OneScript\lib\opm\src\core\Классы\СерверПакетов.os / Ошибка в строке: 94 / Ошибка подк
лючения к зеркалу }
ПРЕДУПРЕЖДЕНИЕ - Ошибка получения списка пакетов с хаба ЗапаснойСерверПакетов по причине {Модуль C:\
Program Files\OneScript\lib\opm\src\core\Классы\СерверПакетов.os / Ошибка в строке: 94 / Ошибка подк
лючения к зеркалу }
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\opm\src\core\Классы\МенеджерПолученияПак­ето
в.os / Ошибка в строке: 18 / Ошибка установки пакета swagger: Пакет не найден}
12. botokash 389 28.01.20 13:35 Сейчас в теме
(11) Добрый день. Могу предположить, что не работают хабы пакетов. Можете скачать packagedef тут.
13. CodeNull 30.01.20 05:14 Сейчас в теме
(11) Проверьте настройки прокси. У меня были с этим проблемы когда пытался использовать opm на работе. Решается конфигурирование менеджера пакетов либо хардкодингом: https://github.com/oscript-library/opm/issues/152#issuecomment-487804579
21. SLV66 30.01.20 12:01 Сейчас в теме
14. SLV66 30.01.20 08:09 Сейчас в теме
после подмены указанного файла ошибки не уходят (

C:\Program Files\OneScript\bin>opm install swagger
{Модуль C:\Program Files\OneScript\lib\opm\src\core\Классы\metadataparser.os / Ошибка в строке: 4,4
/ Библиотека не найдена xml-parser}
15. botokash 389 30.01.20 08:16 Сейчас в теме
(14) проверил, пакет доступен для установки с хаба:
PS C:\WINDOWS\system32> opm install swagger
ИНФОРМАЦИЯ - Скачиваю файл: swagger.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет swagger
ИНФОРМАЦИЯ - Установка завершена
ИНФОРМАЦИЯ - Устанавливаю зависимость: fs
ИНФОРМАЦИЯ - Скачиваю файл: fs-1.0.0.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет fs
ИНФОРМАЦИЯ - Установка завершена
ИНФОРМАЦИЯ - Устанавливаю зависимость: xml-parser
ИНФОРМАЦИЯ - xml-parser уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: json
ИНФОРМАЦИЯ - Скачиваю файл: json-1.1.1.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет json
ИНФОРМАЦИЯ - Установка завершена
Показать


Все зависимости явно видны.
16. CodeNull 30.01.20 08:19 Сейчас в теме
(15) Тоже проверил, установка прошла успешно.

(14) Какая версия oscript и opm?

# opm -v
0.15.3
# oscript -v
1.1.1.44
17. пользователь 30.01.20 11:48
Сообщение было скрыто модератором.
...
18. SLV66 30.01.20 11:51 Сейчас в теме
C:\Program Files\OneScript\bin>opm -v
{Модуль C:\Program Files\OneScript\lib\opm\src\core\Классы\metadataparser.os / Ошибка в строке: 4,4
/ Библиотека не найдена xml-parser}
20. botokash 389 30.01.20 11:59 Сейчас в теме
(18) ну тут очевидно, нужно установить пакет xml-parser
19. SLV66 30.01.20 11:52 Сейчас в теме
C:\Program Files\OneScript\bin>oscript -v
1.2.0.92
22. SLV66 30.01.20 12:02 Сейчас в теме
а нельзя ли скопировать этот проект и вставить ?
23. botokash 389 30.01.20 12:14 Сейчас в теме
(22) попробуйте этот архив распаковать в "C:\Program Files (x86)\OneScript\lib"
Прикрепленные файлы:
swagger.rar
24. SLV66 30.01.20 12:22 Сейчас в теме
скопировал

opm install swagger Это делать получается не нужно?
25. SLV66 30.01.20 12:23 Сейчас в теме
C:\Windows\system32>oscript C:\inetpub\wwwroot\Onescript\upload.os -name SimpleAPI -path C:\MP_1C\Co
nf\Conf_file\ -type xml -adminurl http://localhost/oosw/
{Модуль C:\inetpub\wwwroot\Onescript\upload.os / Ошибка в строке: 5,5 / Библиотека не найдена swagge
r}
26. botokash 389 30.01.20 13:45 Сейчас в теме
(25) Как мне кажется, у вас проблема не с моей библиотекой. В телеграмме есть группа oscript_library, обратитесь лучше туда. В комментариях под статьей не место для поиска ответов на ваши проблемы.
27. tdr 11.02.20 12:43 Сейчас в теме
Установил сие на хттп сервис генерации актов сверки у заказчика.
Хороший инструмент для описания api у сервиса
Но заметно уступающий тому же Fiddler для отладки и мониторинга работы сервиса

пришел к выводу, что удобнее непосредственно тут править описание сервиса сразу на YAML, нежели на JSON, и итоговый результат вставлять в файл сервиса с расширением json

https://prnt.sc/r0m9l5

чем оформлять в 1С потом небыстро выгружать и обрабатывать парсером.
28. tdr 11.02.20 12:52 Сейчас в теме
Swagger не умеет отображать ответы сервисов, в теле которых есть JSON (у меня массив строк)
вот пример:
https://prnt.sc/r0mf2v
29. qwed557 30 11.03.20 15:54 Сейчас в теме
Здравствуйте, не подскажете куда копать?
Выходит такая ошибка
Ошибка HTTP 500.19 — Internal Server Error

Ошибка конфигурации Данный раздел конфигурации не может использоваться на этом пути. Это происходит, когда раздел блокирован на родительском уровне. Блокировка происходит либо по умолчанию (overrideModeDefault="Deny"), либо устанавливается непосредственно при помощи тега расположения с overrideMode="Deny" или наследуемым свойством allowOverride="false".
Файл конфигурации \\?\C:\swagger\simple-ui\spec-admin\web.config

права на папку для пользователя IIS есть, что еще нужно настроить?
30. qwed557 30 12.03.20 08:48 Сейчас в теме
Вот полный скрин с ошибкой, кто подскажет что поправить надо? На двух разных компах одна и та же ошибка.
Прикрепленные файлы:
31. botokash 389 12.03.20 09:19 Сейчас в теме
(30) Честно говоря не силен в данном вопросе.
32. qwed557 30 12.03.20 09:21 Сейчас в теме
Доустановил компоненты .Net Framework 4.7
теперь выходит следующая ошибка:
Прикрепленные файлы:
KUAvanesov; VVi3ard; +2 Ответить
33. qwed557 30 12.03.20 11:08 Сейчас в теме
все, разобрался, надо было папаку bin скопировать в каталог spec-admin
38. koln 05.07.20 14:30 Сейчас в теме
(33)Возникла такая же проблема. Ваше решение помогло. Уточню только, что папка bin из каталога OneScript, в моем случае C:\Program Files\OneScript
KUAvanesov; VVi3ard; +2 Ответить
39. koln 06.07.20 09:27 Сейчас в теме
При запуске скрипта
oscript upload.os -name SimpleAPI -path D:\ПримерКонфигурация\ -type xml -adminurl localhost/onec-swagger-admin/
возникла ошибка
Не найден тип вызова в блоке! {C:\Program Files (x86)\OneScript\lib\swagger\src\Классы\codeparser.os /Ошибка в строке 127 / Внешнее исключение (System.ArgumentOutOfRangeException):Заданный аргумент находится вне диапазона допустимых значений. Имя параметра: i}
С чем это может быть связано и как исправить?
Прикрепленные файлы:
40. koln 07.07.20 12:15 Сейчас в теме
(39)Проблема решена. Как оказалось, для одного шаблона метод обработчика был полностью закомментирован (не использовался). Именно поэтому и не удавалось найти и сопоставить обработчик по указанному в шаблоне имени.
41. nicolya 4 13.07.20 13:01 Сейчас в теме
Добрый день! Добавил в IIS приложение и при проверке запросом http://localhost/onec-swagger-admin/list.os получаю следующую ошибку:
Ошибка HTTP 404.17 — Not Found
Содержимое запроса является сценарием и не будет обрабатываться обработчиком файла статистики.

Может, сталкивался кто-нибудь, подскажите куда копать? Спасибо
Прикрепленные файлы:
43. Jeka44 30.09.20 17:28 Сейчас в теме
(41) столкнулся с этой же проблемой. Вы смогли ее победить?
44. Jeka44 30.09.20 17:36 Сейчас в теме
(43)отвечу сам себе: чтобы исправить эту ошибку надо доустановить компоненты Windows Службы WCF
52. AlexZm 02.02.22 00:17 Сейчас в теме
(44) А можно подробнее? На windows server 2008 R2 словил ошибку и не могу побороть.
56. Jeka44 10.02.22 10:02 Сейчас в теме
(52)По моему это
Прикрепленные файлы:
53. AlexZm 02.02.22 00:20 Сейчас в теме
(41) Удалось ли победить проблему?
54. ManOfAsgard 07.02.22 09:16 Сейчас в теме
(53) Я не знаю, насколько это актуально, но решение следующее, нашёл здесь - https://infostart.ru/1c/articles/727311/.
Вкратце - нужно приложению onec-swagger-admin указать пул .NET v4.5 Classic, а в каталог приложения положить каталог bin с либами из скачанного архива OneScript.
Прикрепленные файлы:
KUAvanesov; AlexZm; +2 Ответить
55. AlexZm 08.02.22 01:57 Сейчас в теме
(54) Спасибо большое! Получилось.
42. VVi3ard 52 17.08.20 10:15 Сейчас в теме
(0) Полезная статья.
На мой взгляд было бы лучше разбить её на 2 части:
1. Получение описания OpenApi;
2. Отображение этого описания;

Не всем нужно локально поднимать swagger и отображать описание, для начала достаточно было бы просто получить спецификацию и работать с ней на https://swagger.io.

Подскажите если мне не нужно локально хостить swagger, как просто получить сгенерированное описание?
bubnov; artesk; user1284675; +3 Ответить
45. Jeka44 30.09.20 17:44 Сейчас в теме
Столкнулся с ошибкой "Ошибка HTTP 500.23 — Internal Server Error
Обнаружены значения параметров ASP.NET, которые неприменимы в интегрированном режиме управляемого конвейера."
Может кто подскажет как ее победить?
46. Jeka44 30.09.20 17:47 Сейчас в теме
(45)Опять, как только спросил, так сразу разобрался. Не тот пул приложений выбрал
47. amyd 94 18.02.21 12:59 Сейчас в теме
Крутышка по всем статьям!
за задрался в NotePad делать описание.!
однозначно плюс
48. eugeniezheludkov 43 22.02.21 17:42 Сейчас в теме
судя по закоментированному коду //Результат.Вставить("definitions");
сложных типов данных нет , т.е входные выходные данные могут быть лишь строки числа массивы (строк , чисел) и больше ничего (((( а еще булево .
49. SagittariusA 25.03.21 10:24 Сейчас в теме
50. eugeniezheludkov 43 20.04.21 04:32 Сейчас в теме
с кодировкой utf-8 эти скрипты из статьи не дружат от слова совсем.
учитывая, что эта разработка не понимает/не распарсивает xdto, сложные типы не понимает. как на входе так и на выходе лишь простые типы , на выходе так вообще plain\text вместо нормального описания пакета.
возникает вопрос: кто нибудь вообще воспользовался тем что описано в статье ?
как по мне описать методы у котрых на входе string и на выходе string можно было бы и в блокнотике
51. Ibrogim 1311 07.09.21 15:53 Сейчас в теме
Круто. Думал уже писать, но нашёл эту крутатень!
Оставьте свое сообщение