Я начал использовать swagger с swagger-ui-express и swagger-jsdoc для автоматического документирования моего существующего API, который написан с помощью nodejs и express(как описано здесь - пример ).
Я столкнулся с проблемой, когда пытался добавить $ref
в существующий файл JSON Schema (который находится внутримой проект в том же каталоге, что и все мои js-файлы) в моей аннотации.
Мой каталог выглядит следующим образом
Я попытался написать локальный путь (./schema.json
) и абсолютный путь, пытался использовать #
, используя много синтаксисов и ничего не работало.
Моя аннотация выглядит так:
/**
* @swagger
* /testing:
* get:
* description: This should show the json schema
* responses:
* 200:
* description: "successful operation"
* schema:
* $ref: "./schema.json"
*/
Я ожидал, что пользовательский интерфейс Swagger покажет мнеСхема JSON в моем разделе запроса.Я получаю следующую ошибку -
Resolver error at paths./testing.get.responses.200.schema.$ref
Could not resolve reference: Tried to resolve a relative URL, without having a basePath. path: './schema.json' basePath: 'undefined'.
Я посмотрел проблему в Интернете и не смог найти четкого ответа.Я нашел решение, в котором предлагалось поместить мою схему на сервер и получить к ней доступ с помощью URL-адреса, но я предпочитаю не делать этого в этой точке.
Кроме того, в какой-то момент я сохранил схему впеременная, а затем положить его в $ref
, и он работал нормально.Единственная проблема заключалась в том, что схема включала некоторые внутренние ссылки на элемент в том же файле, и Swagger не мог их разрешить.
Есть ли способ правильно работать с $ref
в чванство-щ-экспресс