swagger 在www.example.com核心Redoc中创建自定义index.htmlasp.net作为API文档

k97glaaz  于 2022-12-26  发布在  .NET
关注(0)|答案(1)|浏览(153)

我使用Asp.net核心,Swagger和Redoc作为API文档:

app.UseReDoc(c =>
    {
        c.DocumentTitle = "API Documentation";
        c.SpecUrl = "/swagger.json";
    });

api-docs的默认路径是/api-docs/index. html
我有两个问题:
有没有可能制作一个自定义的index.html页面?
我们可以在文档中添加另一个自定义页面吗?

ogsagwnx

ogsagwnx1#

你可以为它制作一个自定义的index.html页面,但是它似乎不支持太多的可伸缩性,似乎你不能添加其他页面。

app.UseReDoc(c =>
{
    c.DocumentTitle = "Swagger Demo Documentation";
    c.SpecUrl = "/swagger/v1/swagger.json";

    c.IndexStream = () => Assembly.GetExecutingAssembly()
        .GetManifestResourceStream("ProjectName.index.html"); // requires file to be added as an embedded resource
});

将自定义Index.html作为嵌入文件添加到csproj文件中:

<ItemGroup>
        <EmbeddedResource Include="index.html">
            <CopyToOutputDirectory>Always</CopyToOutputDirectory>
        </EmbeddedResource>
</ItemGroup>

我的自定义index.cshtml(要开始,您应该将自定义index.html基于default version):

<!DOCTYPE html>
<html>
<head>
    <title>%(DocumentTitle)</title>
    <!-- needed for adaptive design -->
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">

    <!--
    ReDoc doesn't change outer page styles
    -->
    <style>
        body {
            margin: 0;
            padding: 0;
        }
    </style>
    %(HeadContent)
</head>
<body>
    <h1>Customer Index Page</h1>
    <div id="redoc-container"></div>
    <script src="redoc.standalone.js"></script>
    <script type="text/javascript">
        Redoc.init('%(SpecUrl)', JSON.parse('%(ConfigObject)'), document.getElementById('redoc-container'))
    </script>
</body>
</html>

测试结果:

有关详细信息,请参阅此链接。

相关问题