1

我正在尝试使用Hugo Docsy SwaggerUI Shortcode呈现 OAS 文件,但呈现的页面不包含预期的结果。

这是我的rest-api.md文件:

---
title: "REST API"
linkTitle: "REST API"
date: 2021-02-21
weight: 2
description: >
  REST API described using OpenAPI Specification.
---

{{< swaggerui src="http://localhost:1313/access.yaml" >}}

这是渲染的页面:

呈现的页面

如您所见,HTML 包含以下尝试呈现 OAS 文件的脚本:


  var resolveUrl = function () {
    var passedUrl = 'http:\/\/localhost:1313\/access.yaml';
    var baseUrl = '\/\/localhost:1313\/'.replace(/\/$/, '');
    if (passedUrl.startsWith('/')) {
      return baseUrl + passedUrl;
    }
    return passedUrl;
  };
  window.onload = function () {
    const ui = SwaggerUIBundle({
      url: resolveUrl(),
      dom_id: '#ohpen_swagger_ui',
      presets: [
        SwaggerUIBundle.presets.apis,
        SwaggerUIStandalonePreset
      ]
    });
    window.ui = ui;
  };

需要注意的是,http://localhost:1313/access.yaml成功解析到access.yaml文件。

是什么阻止了 OAS 文件被呈现?

4

1 回答 1

1

我发现了我的错误。type必须在页面的前端设置为swagger

页面必须如下:

---
title: "REST API"
linkTitle: "REST API"
type: swagger
date: 2021-02-21
weight: 2
description: >
  REST API described using OpenAPI Specification.
---

{{< swaggerui src="http://localhost:1313/access.yaml" >}}

/access.yaml如果Hugo 将 OAS 文件作为静态文件提供,则可以使用相对路径引用 OAS文件。

于 2021-02-21T15:40:08.933 回答