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