标签: swashbuckle

如何在Swagger UI中发送带有请求的Authorization标头?

我有一个ASP.NET Web Api 2应用程序.我添加了Swashbuckle(Swagger for .NET).它显示我的端点没问题,但是为了发送请求,我需要将Authorization标头附加到该请求.如果我理解为了做到这一点我需要修改index.html文件(https://github.com/swagger-api/swagger-ui#how-to-use-it)所以我git克隆了Swashbuckle项目为了修改index.html并添加一些标题.

这是在Swashbuckle中发送带有请求的Authorization标头的唯一方法吗?

swagger swagger-ui swagger-2.0 swashbuckle

18
推荐指数
1
解决办法
3万
查看次数

Swagger中的数据注释

我使用ASP.NET和Swagger公开了一个接受POST的复杂类型.它有许多具有不同限制长度的字符串字段.我怎样才能在Swagger UI中反映出来?

asp.net-web-api2 swagger-2.0 swashbuckle

18
推荐指数
1
解决办法
5522
查看次数

你应该将Swagger与HATEOAS/HAL/JSON-LD结合使用吗?

我使用Swagger为我的ASP.NET Core API使用Swashbuckle,它在一个单独的文档中描述了我的API,并为所有这些信息提供了一个很好的UI.

使用像HATEOAS,HAL或JSON-LD这样的东西是否有任何优点可以与Swagger一起修改文档本身?

以下是使用Swagger和HAL的人的示例.

json hateoas swagger json-ld swashbuckle

17
推荐指数
3
解决办法
1万
查看次数

如何从 OpenAPI 架构中使用 operationId?

在 OpenAPI 架构中,它包含可选元素operationId

这是如何使用的以及为什么它是可选的?好吧,至少对于 .NET Core 库“Swashbuckle”,他们说它是可选的

我的猜测是它与 SDK 的使用方式有关。例如,我可以从任何有效的 OpenAPI 模式创建 Typescript SDK...所以我猜测它与 Typescript SDK 的生成方式和消费/使用方式有某种联系?

swashbuckle openapi

17
推荐指数
2
解决办法
2万
查看次数

如何在Swagger中显示WebApi OAuth令牌端点

我创建了一个新的Web Api项目,添加了Asp.Net Identity并配置了OAuth,如下所示:

OAuthOptions = new OAuthAuthorizationServerOptions
{
    TokenEndpointPath = new PathString("/Token"),
    Provider = new ApplicationOAuthProvider(PublicClientId),
    AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
    AllowInsecureHttp = true
};
Run Code Online (Sandbox Code Playgroud)

这一切都很好,我可以调用/ Token端点并获得一个持有者令牌.

问题是,在Swagger中我无法发现这一点,因为它不在控制器上,因此没有为它生成xml文档.

有谁知道在我的Swagger文档中显示此登录端点的方法?

谢谢.

另外,我应该说Swagger文档正在与我的所有控制器一起工作,这只是我错过了一个明显的方法 - 如何登录.

asp.net-web-api asp.net-identity swagger-ui swashbuckle

16
推荐指数
2
解决办法
6442
查看次数

找不到Swashbuckle.AspNetCore SwaggerOperation属性

我正在尝试使用Swashbuckle.AspNetCore(3.0.0)帮助创建的Autorest和Swagger文档来生成REST API客户端.

生成的swagger文档似乎是正确的,除了操作名称不是很好.

"/api/Addresses/{id}": {
      "get": {
        "tags": [ "Address" ],
        "operationId": "ApiAddressesByIdGet",
        "consumes": [],
        "produces": [],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": { "200": { "description": "Success" } }
      },
Run Code Online (Sandbox Code Playgroud)

我在许多文章和SwashBuckle.AspNetCore的官方文档中看到我可以使用属性来装饰我的控制器方法,如下所示:

 [HttpGet]
 [Produces("application/json")]
 [ProducesResponseType((int)HttpStatusCode.NotFound)]
 [ProducesResponseType(typeof(List<AddressDto>), (int)HttpStatusCode.OK)]
 [SwaggerOperation("GetAllAdresses")]
 public async Task<IActionResult> GetAllAsync()
 {
   ....
 }
Run Code Online (Sandbox Code Playgroud)

不幸的是,我收到了一个错误:无法找到SwaggerOperationAttribute!

我验证了安装的nuget包,它们是:

  • SwashBuckle.AspNetCore.Swagger(3.0.0)
  • SwashBuckle.AspNetCore.SwaggerGen(3.0.0)
  • SwashBuckle.AspNetCore.SwaggerUI(3.0.0)

有人可以帮帮我吗?请

swashbuckle asp.net-core

16
推荐指数
1
解决办法
7082
查看次数

在文档中对API方法进行分组 - 是否存在一些自定义属性

我有控制器喜欢

public class UserController : ApiController
{
  [Route("api/user")]
  IHttpActionResult GetUser() { ... }
}

public class ResumeController : ApiController
{
  [Route("api/user/resumes")]
  IHttpActionResult GetResumes() { ... }
}
Run Code Online (Sandbox Code Playgroud)

在swagger上产生的输出就像 在此输入图像描述

有没有办法(除了通过推出自己ISwaggerProvider或将两个控制器合并为一个来覆盖默认实现)来强制执行组名?就像是

public class UserController : ApiController
{
  [Route("api/user")]
  [MagicalAttributeName(Group="User")]
  IHttpActionResult GetUser() { ... }
}

public class ResumeController : ApiController
{
  [Route("api/user/resumes")]
  [MagicalAttributeName(Group="User")]
  IHttpActionResult GetResumes() { ... }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api swagger-ui swashbuckle

15
推荐指数
2
解决办法
9295
查看次数

Swashbuckle Swagger - 如何注释内容类型?

如何对ASP.NET WebAPI操作进行注释,以便swagger元数据包含我的资源支持的内容类型?

具体来说,我希望文档显示我的一个资源可以返回'原始' application/json,application/xml但现在也返回一个新格式,application/vnd.blah+json或者+xml.

asp.net-web-api2 swagger-2.0 swashbuckle

15
推荐指数
3
解决办法
2万
查看次数

使用Swagger生成的客户端时标头中的硬编码Api键值

我在C#中编写了许多API,并使用Swashbuckle创建了一个"Swagger"文档网站.

对于Authenticate REST调用,我在标头中使用API​​ Key.

我创建了一个页面,允许下载任何编程语言的特定客户端,如下所示:https://generator.swagger.io

我想让用户使用自己的API密钥生成客户端,这样他就不需要再在代码中手动设置API密钥了.

在我的Swagger JSON中,我有这个安全性定义:

"securityDefinitions": {
    "apiKey": {
        "type": "apiKey",
        "description": "API Key Authentication",
        "name": "X-ApiKey",
        "in": "header"
    }
}
Run Code Online (Sandbox Code Playgroud)

在Swagger Client Generator的页面中,我发现这个模型允许设置客户端选项,但我无法找到客户端代码中API密钥如何(以及是否)可以硬编码(或任何其他类型的授权).

GeneratorInput {
    spec (object, optional),
    options (object, optional),
    swaggerUrl (string, optional),
    authorizationValue (AuthorizationValue, optional),
    securityDefinition (SecuritySchemeDefinition, optional)
}
AuthorizationValue {
    value (string, optional),
    type (string, optional),
    keyName (string, optional)
}
SecuritySchemeDefinition {
    description (string, optional),
    type (string, optional)
}
Run Code Online (Sandbox Code Playgroud)

我想我必须设置AuthorizationValue对象,但没有关于它的文档(或者我找不到它).

能够让生成的客户端lib为所有请求添加任意HTTP头就足够了.

在这种情况下,我们可以添加:

X-ApiKey:{whatever the key is}
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

非常感谢!

api-key swagger swashbuckle swagger-codegen

15
推荐指数
1
解决办法
1025
查看次数

Swagger Swashbuckle Asp.NET Core:显示有关使用的每个枚举的详细信息

我有以下枚举:

public enum TicketQuestionType
{
    General = 1,
    Billing = 2,
    TMS = 3,
    HOS = 4,
    DeviceManagement = 5
}
Run Code Online (Sandbox Code Playgroud)

和模型类:

public class TicketCreateApi
{
    public string Subject { get; set; }
    public TicketQuestionType QuestionType { get; set; } = TicketQuestionType.General;
    public TicketType Type { get; set; } = TicketType.Problem;
    public TicketStatus Status { get; set; } = TicketStatus.New;
    public TicketPriority Priority { get; set; } = TicketPriority.Normal;
    public string Description { get; set; }
    public List<string> Attachments { …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api swagger swashbuckle asp.net-core swashbuckle.aspnetcore

15
推荐指数
1
解决办法
1万
查看次数