Swagger UI - чтение спецификаций JSON из редактора в UI без хостинга

Я пытаюсь документировать свой API с помощью Swagger, написав документацию в редакторе Swagger и затем загружая его в интерфейс Swagger. Я использовал редактор и загрузил свой файл JSON, а затем изменил файл /dist/index.html в интерфейсе пользователя, чтобы он указывал на мой локальный файл, используя:

var spec = "file:///Users/user1/Desktop/swagger.json";

  if (url && url.length > 1) {
    url = decodeURIComponent(url[1]);
  } else {
    url = "http://petstore.swagger.io/v2/swagger.json";
  }

  // Pre load translate...
  if(window.SwaggerTranslator) {
    window.SwaggerTranslator.translate();
  }
  window.swaggerUi = new SwaggerUi({
    url: url,
    spec: spec,

Единственное, что я изменил в этом файле - это использование spec var для указания на мой JSON-файл, однако, когда я открываю пользовательский интерфейс, он отображает пустую страницу пользовательского интерфейса с сообщением "Закончена загрузка информации о ресурсе. Рендеринг Swagger UI..." "Я просто хотел бы отобразить документацию, которую я создал в редакторе, в пользовательском интерфейсе без необходимости размещения спецификаций, есть что-то, чего я пропускаю?

1 ответ

В соответствии с документацией, значение спецификации должно быть объектом JSON, поэтому вы должны сделать что-то вроде:

window.swaggerUi = new SwaggerUi({
  spec: JSON.parse('{ "swagger": "2.0", ...')

где

{ "swagger": "2.0", ...

содержимое вашего файла: ///Users/user1/Desktop/swagger.json file

Другие вопросы по тегам