标签: swashbuckle

如何在Swashbuckle中添加头文档?

我正在使用Swashbuckle库.目前没有stackoverflow标记.

我不太明白这里的文档:https://github.com/domaindrivendev/Swashbuckle/blob/master/README.md

标题为"描述安全/授权方案"的部分提到了一段代码

   c.ApiKey("apiKey")
                .Description("API Key Authentication")
                .Name("apiKey")
                .In("header");
Run Code Online (Sandbox Code Playgroud)

然而,当我包括这个没有任何反应.我还希望这只出现在某些API方法上.确实提到了

"需要在文件中加上相应的"安全"财产"

但我不明白这一点.

谁能解释一下?

c# swagger swagger-ui swashbuckle

10
推荐指数
1
解决办法
7513
查看次数

如何配置Swagger/Swashbuckle自定义序列化程序IControllerConfiguration ASP.NET WebAPI

我有一个WebAPI端点,它实现了两个不同版本的API(旧版和新版).旧端点使用特定的串行器,该序列化器将所有对象序列化为带有下划线的小写字,v2端点使用驼峰式属性名称.例如,V1 ="document_type",V2 ="documentType"

目前使用控制器特定属性来定义序列化,如下所示:

public class CamelCaseControllerConfiguration : Attribute, IControllerConfiguration
{
    public void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor)
    {
        controllerSettings.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        controllerSettings.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());
    }
}
Run Code Online (Sandbox Code Playgroud)

当通过REST从客户端调用时,这一切都正常,但Swagger生成的文档始终使用旧的序列化器设置显示属性名称.有关配置swashbuckle以正确序列化每个版本的任何建议吗?

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

10
推荐指数
1
解决办法
1100
查看次数

配置Swashbuckle使用DelegatingHandler作为消息调度程序

我有一个Web API,它是一个非常薄的基础结构,只包含两个DelegatingHandler实现,它们将传入的消息分派给业务层中定义的消息处理程序实现.这意味着没有控制器,也没有控制器动作; API仅基于消息定义.这意味着在实现新功能时,不需要此基础结构层中的代码更改.

例如,我们有以下消息:

  • CreateOrderCommand
  • ShipOrderCommand
  • GetOrderByIdQuery
  • GetUnshippedOrdersForCurrentCustomerQuery

委托处理程序根据url确定确切的消息,并将请求内容反序列化为该消息类型的实例,之后该消息将转发到相应的消息处理程序.例如,这些消息(当前)映射到以下URL:

  • API /命令/ CreateOrder
  • API /命令/运送订单
  • API /查询/ GetOrderById
  • API /查询/ GetUnshippedOrdersForCurrentCustomer

可以想象,这种使用Web API的方式简化了开发并提高了开发性能; 编写的代码更少,测试代码更少.

但由于没有控制器,我在Swashbuckle中引导这个问题; 阅读完文档后,我没有找到在Swashbuckle中注册这些网址的方法.有没有办法以这样的方式配置Swashbuckle它仍然可以输出API文档?

为了完整起见,可以在此处找到演示此内容的参考架构应用程序.

c# asp.net-web-api swagger swashbuckle

10
推荐指数
1
解决办法
1280
查看次数

Swagger UI:传递自定义授权标头

我在ASP.NET Web API上使用Swashbuckle和Swagger.我正在尝试通过Swagger UI找到一种传递包含Bearer令牌的Authorization标头的方法.我一直在寻找,但所有答案似乎都指向了这个链接.

但是,这假定标题的内容是预先知道的.我真的需要一种方法来改变Swagger UI中的标题(在点击'试一试!'按钮之前),因为Bearer令牌每小时都会到期.类似于Postman允许您添加标题的方式.

这似乎是一个如此荒谬的简单问题,但答案是什么?

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

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

如何在Swashbuckle中为包含OWIN的WebApi 2生成Swagger文档中包含类和属性描述?

在你想到它之前,是不一样的.

我认为这应该是非常自我解释的.我想在Swagger文档中包含类描述.我的Swagger配置如下所示:

config.EnableSwagger(c =>
{
    c.SingleApiVersion("v1", "My Api Name");
    c.OperationFilter<AddAuthorizationHeaderParameterOperationFilter>();
    c.IncludeXmlComments(GetXmlCommentsPath());

}).EnableSwaggerUi(c => { });
Run Code Online (Sandbox Code Playgroud)

而且MyAwesomeController看起来是这样的:

/// <summary>
/// Controller description (is included by Swashbuckle)
/// </summary>
public class MyAwesomeController : ApiController
{
    /// <summary>
    /// Method description (is included by Swashbuckle)
    /// </summary>
    public IHttpActionResult Get()
    {
        return Ok("hello... from the other side");
    }

    public IHttpActionResult Post([FromBody]MyAwesomeModel model)
    {
        return Ok("hello... from the other side");
    }
}
Run Code Online (Sandbox Code Playgroud)

MyAwesomeModel看起来像这样:

/// <summary>
/// …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api swagger owin swashbuckle

10
推荐指数
1
解决办法
5357
查看次数

仅在swagger-swashbuckle UI中显示选定的控制器

我目前在我的项目中使用招摇,我在那里有超过100个控制器.我想由于控制器数量众多,swagger UI文档页面需要超过5分钟才能加载其控制器.是否可以在UI页面中选择特定控制器并仅为它们加载选项?或者还有其他方法可以更快地加载UI页面?帮我!

c# swagger swagger-ui swashbuckle

10
推荐指数
3
解决办法
6681
查看次数

Swagger无法正常使用多个版本的ASP.NET WebApi应用程序

请帮助我,一开始看起来很容易,现在我在项目中迟到了:

我正在尝试为Swager和ASP.NET WebApi项目设置API版本.API版本控制正常,调用不同的版本会返回正确的结果(见下文).

相反,Swagger无法为这两个版本提供服务.在调试时,我注意到当c.MultipleApiVersions(...)在SwaggerConfig.cs中调用时,报告的控制器apiDesc.ActionDescriptor.ControllerDescriptor总是PingController从不Ping11Controller.

有人可以指出要解决这个问题需要做些什么,并且Swagger也适用于这两个版本?

下面,API版本的代码和证明工作正常,而Swagger仅适用于v1.0.

谢谢!

调用API v1.0有效: 在此输入图像描述

调用API v1.1也适用: 在此输入图像描述

Swagger for v1.0很好: (http:// localhost:50884/v1.0/swagger)

{
   "swagger":"2.0",
   "info":{
      "version":"v1.0",
      "title":"My API v1.0"
   },
   "host":"localhost:50884",
   "schemes":[
      "http"
   ],
   "paths":{
      "/api/ping":{
         "get":{
            "tags":[
               "Ping"
            ],
            "summary":"Get a pong.",
            "operationId":"GetAPong",
            "consumes":[
            ],
            "produces":[
               "application/json",
               "text/json",
               "application/xml",
               "text/xml"
            ],
            "responses":{
               "200":{
                  "description":"OK"
               },
               "404":{
                  "description":"NotFound"
               }
            }
         }
      }
   },
   "definitions":{
   }
}
Run Code Online (Sandbox Code Playgroud)

Swagger for v1.1为空: (http:// localhost:50884/v1.1/swagger)

{
   "swagger":"2.0",
   "info":{ …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api swagger swashbuckle

10
推荐指数
1
解决办法
4529
查看次数

利用属性版本控制在Swagger中利用MultipleApiVersions

使用属性路由时,是否可以在Swagger UI/Swashbuckle中利用MultipleApiVersions?

具体来说,我实现了版本控制:

using System.Web.Http;

namespace RESTServices.Controllers.v1
{
    [Route("api/v1/Test")]
    public class TestV1Controller : ApiController
    { ... }
Run Code Online (Sandbox Code Playgroud)

版本2将位于v2名称空间中.在名为TestV2Controller的控制器中.路线中有v2.

是否可以传递一个lambda,这将允许这个?我在网上发现了一个编译的lambda样本,但随后Swagger完全停止了工作.无法在浏览器中点击断点或看到Swagger.

attributes swagger swagger-ui asp.net-web-api2 swashbuckle

9
推荐指数
1
解决办法
6788
查看次数

使用 Swashbuckle 生成 yaml swagger

json使用Microsoft 的教程在我的 Web API 项目中获取文件没有问题。

由于某些要求,我希望能够检索yaml文件。但问题是我找不到任何钩子来使这成为可能。

有谁知道这个问题的任何解决方法

c# asp.net-web-api swagger swashbuckle

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

.NET Core 2.0 Web API - 如何在Swagger中添加自定义标头参数

根据标题 - 我已经找到了如何使用常规.NET执行此操作的示例

例如: Web Api如何为Swagger中的所有API添加Header参数

但是,我找不到任何示例或文档,显示如何在使用.NET Core 2.0时完成相同的操作.

swagger .net-core swashbuckle openapi.net

9
推荐指数
1
解决办法
7328
查看次数