swagger 如何向nswag documentGenerator添加身份验证

wkftcu5l  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(123)

我有一个nswag.json文件,其中包含生成c# http客户端的配置。然而,我想指向的swagger url是受Http基本身份验证保护的。
是否可以在配置文件中添加必要的用户名和密码?
看起来像这样(来自nswag.json中的documentGenerator部分):

"documentGenerator": {
"fromDocument": {
  "url": "https://example.com/swagger/v1/swagger.json",
  "output": null,
  "newLineBehavior": "Auto",
  "authorization": {
    "type": "Basic",
    "username": "example",
    "password": "example"
  }
}

字符串
提前感谢!

4xrmg8kj

4xrmg8kj1#

从我可以告诉没有办法实现这一点一样https://github.com/RicoSuter/NSwag/blob/master/src/NSwag.Commands/Commands/Generation/FromDocumentCommand.cs
不确定这是否有帮助,但您可以将原始Json放在json字段下,而不是url字段。

wsewodh2

wsewodh22#

我可以通过在同一个预构建事件中在nswag之前执行一个脚本来实现我想要的。使用该脚本,我可以添加身份验证头,以从API(.../swagger.json)获取swagger规范。之后,swagger文件保存在项目目录中,nswag使用它来生成客户端。Nswag文件中的文档生成器看起来像这样:

"documentGenerator": {
"fromDocument": {
  "json": "./swagger.json",
  "output": null,
  "newLineBehavior": "Auto"
}

字符串
}
预构建事件:

<Target Name="PreBuild" BeforeTargets="BeforeBuild">
    <Exec ConsoleToMsBuild="true" WorkingDirectory="$(ProjectDir)" Command="python swagger_download.py" />
    <Exec ConsoleToMsBuild="true" WorkingDirectory="$(ProjectDir)" Command="$(NSwagExe_Net60) run nswag.json /variables:Configuration=$(Configuration)" />
    <ItemGroup>
        <Compile Include="GeneratedClients\*.cs" />
    </ItemGroup>
</Target>

相关问题