В настоящее время я использую 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 публикации)?