При документировании с использованием swagger-ui- express и swagger-jsdo c, как указать файл json для определения схемы? - PullRequest
1 голос
/ 06 января 2020

В настоящее время я использую ajv для проверки некоторых входных данных API в узле / express. Ожидаемые данные описаны в файле схемы. json.

Теперь я хотел бы повторно использовать этот файл для документирования своего API, полагаясь на swagger-ui- express и swagger-jsdo * 1029. *.

Существует довольно много ссылок на то, как повторно использовать определение объекта в сваггере, но все эти описания предполагают, что определение дано в блоке комментариев "@swagger".

I просто не вижу, как указать на локальный файл JSON.

Если мой комментарий имеет такую ​​форму:

/**
* @swagger
* /init/user:
*   post:
*     description: Creates a user
*     produces:
*       - application/json
*     parameters:
*       - in: body
*         name: create user
*         required: true
*         schema:
*           $ref: 'schemas/initUserApi.json'
*/

(обратите внимание, что это неполный шаблон, я хочу сосредоточиться на проблеме), тогда окончательный вывод чванства выдаст ошибку:

Could not resolve reference: Tried to resolve a relative URL, without having a basePath. path: 'schemas/initUserApi.json' basePath: 'undefined'

Я попытался определить раздел «компоненты», как описано в этом выпуске: Невозможно сослаться схема компонентов, определенная в отдельном файле в Swagger , это ничего не делает.

Я попытался использовать абсолютные / относительные имена файлов и т. д. c (здесь также есть другое предложение: Как использовать $ ссылка в файл swagger правильно при работе с swagger-ui - express и swagger-jsdo c), безрезультатно.

Возможно ли это? На самом деле цель состоит в том, чтобы использовать отдельный файл json в качестве схемы, поскольку я хотел бы иметь единственный источник информации. Мне не ясно, как работает цепочка swagger-ui-express / swagger-jsdo c, нужно ли как-то обслуживать этот файл json моим веб-сервером swagger (сейчас это действительно документация, работающая на localhost, нет публичного / intr anet публикации)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...