Tag: swashbuckle

Swashbuckle Swagger UI:如何从xml注释中删除参数中所需的内容

我想更改控制器中某些参数的必需属性。 我使用XML注释来链接到Swagger。 这里的示例图像

如何使用swagger swashbuckle保护生成的API文档

我已经使用swagger swashbukle实现了API文档。 现在我想在我的网站上发布生成的文档作为帮助文件。 如何保护此链接并发布?

Swagger 2.0不支持:带路径的多个操作

我在WebApi 2应用程序中集成了swagger。 应用程序有单个控制器时,它工作正常。 当我在应用程序中添加第二个控制器时。 我收到了以下错误: 发生错误。“,”ExceptionMessage“:”Swagger 2.0不支持:路径’api / Credential’和方法’GET’的多个操作。 请参阅配置设置 – \“ResolveConflictingActions \”以获取潜在的解决方法“,”ExceptionType“:”System.NotSupportedException“,”StackTrace“:”在Swashbuckle的Swashbuckle.Swagger.SwaggerGeneratorOptions.DefaultConflictingActionsResolver(IEnumerable 1 apiDescriptions)\r\n at Swashbuckle.Swagger.SwaggerGenerator.CreatePathItem(IEnumerable 1 apiDescriptions,SchemaRegistry schemaRegistry)\ r \ n在Swashbuckle.Swagger.SwaggerGenerator。 c__DisplayClass7.b__4(IGrouping 2 group)\r\n at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable 1 source,Func 2 keySelector, Func 2 elementSelector,IEqualityComparer 1 comparer)\r\n at Swashbuckle.Swagger.SwaggerGenerator.GetSwagger(String rootUrl, String apiVersion)\r\n at Swashbuckle.Application.SwaggerDocsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\r\n at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)\r\n at System.Web.Http.Dispatcher.HttpRoutingDispatcher.SendAsync(HttpRequestMessage request, […]

如何使用Swagger生成选项(CORS)

对于我们正在开发的项目,我们自动生成Swagger文件。 但是现在我们正在努力研究CORS部分。 我们正在使用Amazon API网关导入apifunction。 要与Swagger和CORS结合使用,我们必须在源代码中创建一个额外的操作(操作),它允许每个api方法(操作)的CORS(选项)! 例如: [HttpOptions] [Route(“{id}”)] [ProducesResponseType((int)HttpStatusCode.OK)] public IActionResult UserOptions() { return new OkResult(); } 正如您所看到的,这会使代码变得更脏。 这是一个临时修复,但我们找不到另一种方法。 有没有办法在swagger定义文件中自动生成这个? 或者我们如何做到这一点,亚马逊API网关需要这个(文档: http : //docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html )

列出多个组下的API方法

我有Swashbuckle带注释的代码,如下所示: [Route(“api/Subscribers/{id}/[controller]”)] [Route(“api/Organizations/{id}/[controller]”)] public class AddressesController : Controller { [HttpGet(“{aid}”)] [SwaggerResponse(HttpStatusCode.OK, Type = typeof(PostalRecord))] public async Task GetAddress(Guid id, Guid aid) { //do something } 我想使用GroupActionsBy自定义,如本例所示 ,但我希望将上面的GetAddress方法同时包含在两个独立的组中,这些组对应于显示的两个路由前缀: [Route(“api/Subscribers/{id}/[controller]”)] [Route(“api/Organizations/{id}/[controller]”)] 换句话说,我希望在两者下列出相同的方法: 认购 组织 如何才能做到这一点? 顺便说一下,我正在使用ASP.NET Core( dnx46 )。 如果还不能使用Swashbucklee的ASP.NET核心版本执行此操作,那么仍然可以欣赏完整的CLR(Web API 2.2?)示例。 另外,关于我正在尝试做的更完整的故事 – 我有一个单独的SOpost 。 更新 @venerik给出的答案让我接近解决方案。 当我申请他的示例代码时…… [SwaggerOperation(Tags = new []{“Subscribers”, “Organizations”})] …这导致Swagger列表看起来像这样: 简而言之,“地址”端点现在出现在我想要的标题下,但是,正如红色箭头所示,它们现在也被“交叉列出”; 我不希望“订户”端点列在“组织”端点下。 […]

Swashbuckle.AspNetCore v1.0.0 with OAuth2,flow:application – > IdentityServer4

我似乎无法使我的.net核心Web API与swashbuckle,OAuth2一起使用应用程序流。 当我单击“授权”按钮时,Fiddler显示调用正常,我的本地IdentityServer(4)回复了access_token。 这一切都很棒,但我不认为Swagger选择了这一点,没有任何事情发生,我不能在没有获得401的情况下触发我的控制器方法。我看不到任何cookies,没有。 我敢肯定我错过了一些超级微不足道的东西。 有人可以帮我吗? 相关代码: 在Startup.cs中配置服务 c.AddSecurityDefinition(“oauth2”, new OAuth2Scheme { Type = “oauth2”, Flow = “application”, TokenUrl = “http://localhost:61798/connect/token”, Scopes = new Dictionary { { “readAccess”, “Access read operations” }, { “writeAccess”, “Access write operations” } } }); 在Startup.cs中配置 app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions { Authority = “http://localhost:61798”, RequireHttpsMetadata = false, ApiName = “api1”, AutomaticAuthenticate = […]

如何为SignalR生成API文档

有没有办法做到这一点? 我有swashbuckle为我的其他API生成内容但我不相信它适用于SignalR。

使用swagger的Web API文档

我是新手,我已经看过几个在线文档,将Swagger实现到我的webapi,并使用SwaggerConfig的一些属性进行自定义。 以下是我的要求: – 我需要根据“API_Key”TextBox的值“浏览”按钮单击显示swagger文档,该值应与我的app.config键匹配。 所以我看到这样实现: – 用户来到我的招摇主页,默认情况下它将有空文档,除了图像中显示的标题。 在标题中提供的文本框中输入API_Key,然后单击“浏览”。 使用我的app.config中的密钥validation输入的API密钥,或者如果可能,在SwaggerConfig中validation。 如果validation了show documentation,则将错误消息显示为无效的API密钥。 需要建议。 亲切的问候,Raghu

当Authorize标记不包含角色时,我没有获得范围复选框,Ajax授权请求也没有发送范围

更新2:如果我从这里更改我的控制器授权标签 [Authorize] 对此 [Authorize(Roles = “Read”)] 然后我得到范围选择的复选框,ajax令牌请求包含正确的范围并成功完成。 然而,我仍然以红色感叹号结束。 看起来Swagger或Swashbuckle要求角色与范围定义匹配? 使用Swashbuckle时是否可以使用没有定义角色的应用程序流程? 如果是这样,你怎么做到这一点? 我是否必须在操作filter类中手动设置范围? 如果在Authorize标记中没有列出Roles就无法使用Swashbuckle,那么我需要知道如何在IdentityServer3中分配客户端角色。 更新3如果我将操作filter更改为类似的范围,则会显示范围,但在选择范围并单击“授权”后,页面将重新加载。 首先成功发送了ajax授权。 这是更接近,但授权仍然没有坚持(不知道在这里使用什么术语,但坚持似乎总结了。)我如何获得授权坚持? public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription) { var scopes = new List() { “Read” }; if (scopes.Any()) { if (operation.security == null) operation.security = new List<IDictionary<string, IEnumerable>>(); var oAuthRequirements = new Dictionary<string, IEnumerable> { { “oauth2”, scopes […]

将查询字符串参数添加到我的Swagger规范中

我使用我的Web API使用Swashbuckle(swagger for C#)。 我有几个返回列表的GET端点,我允许用户在QueryString中添加perpage和page params 示例: http : //myapi.com/endpoint/?page = 5&pagepage = 10 我看到swagger在’query’中确实支持参数但是我如何让Swashbuckle去做呢? 我在其中一条评论中提到我通过创建自定义属性来解决我的问题,以便让我做我需要的事情。 以下是我的解决方案的代码: [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)] public class SwaggerParameterAttribute : Attribute { public SwaggerParameterAttribute(string name, string description) { Name = name; Description = description; } public string Name { get; private set; } public Type DataType { […]