【问题标题】:Hugo Docsy SwaggerUI shortcode doesn't render the specs fileHugo Docsy SwaggerUI 短代码不呈现规格文件
【发布时间】:2021-03-04 01:25:08
【问题描述】:

我正在尝试使用 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 文件被呈现?

【问题讨论】:

    标签: swagger-ui hugo hugo-shortcode docsy


    【解决方案1】:

    我发现了我的错误。 type必须在页面的front-matter中设置为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 引用 OAS 文件,以防 Hugo 将其作为静态文件提供。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-28
      • 2020-09-16
      • 2019-04-08
      • 2018-05-06
      • 2018-02-15
      • 2020-11-21
      相关资源
      最近更新 更多