Swashbuckle是一个开源框架,它将Swagger和Swagger-ui添加到ASP.NET Web API项目中。
我最近有一个项目迁移到.NET 8,我发现构建管道的 terraform 脚本无法生成 Swagger JSON,因此无法将其添加到我们的 APIM 中。 我有什么
我正在尝试将 Swagger 连接到 VB.Net REST API 项目。无论我尝试什么,应用程序在点击 swagger/ui/index URL 时都会继续返回 404 响应。最初,在启动时我输入
如何使用 swashbuckle 在 .net 8 中自定义 swagger.json 文件名
我尝试将 swagger 文档拆分为同一版本下的不同部分,以便我可以在端点中访问它们,如下所示: 应用程序.UseSwagger(s => { s.SerializeAsV2 = true; }) .
示例请求正文中 JsonPatchDocument 的 Swagger 意外 API PATCH 操作文档
我正在制作 Core 3.1 Web API 并使用 JsonPatch 创建 PATCH 操作。我有一个名为 Patch 的操作,它有一个 JsonPatchDocument 参数。这是该操作的签名: [HttpPatch("{id}&
ASP.NET 承载身份验证,不适用于 swagger。正在与邮递员合作
我正在尝试为我的 ASP.NET Web api 设置身份验证。我已使用 Firebase Google 作为我的身份提供商添加了 jwt 身份验证。 当我尝试通过 swagger ui 进行身份验证时,我可以
如何在 Swashbuckle 中替换 Swagger UI 标题徽标
我正在使用 WebAPI 的 Swashbuckle 包,并尝试自定义 swagger UI 默认页面的外观和感觉。 我想自定义默认的招摇徽标/标题。我有添加...
C# Api 控制器 - 如何实现 swagger oneOf
我必须用C#实现这种Api控制器: 请求正文: 描述:包含宠物信息的JSON对象 内容: 应用程序/json: 学校...
使用 Swashbuckle Swagger 创建 Web API 文档时如何为每个控制器拥有单独的 URL?
我在我的 Web API 项目中使用 Swashbuckle Swagger。默认情况下,所有控制器都列在同一页面上吗? 有什么办法可以让每个控制器都有单独的 URL,并且每个 URL 都可以...
Swashbuckle 不再正确呈现 HTML Swagger 文档
我有一些 Web 服务方法,它们会因不同原因返回相同的 HTTP 响应,例如针对不同质量的已发布数据返回 400 错误请求。我使用 Swashbuckle 生成 Swagger API
我一直在关注 Swashbuckle 上的本教程,但是当我添加备注时,它们显示为常规文本,而不是备注部分中显示的 JSON。是否可以获取 JSON 格式?
是否可以向 dotnetcore api 应用程序中的路径变量添加参数验证?
给出方法: /// 文件所在的容器。 /// 要获取的文件名。 给出方法: /// <param name="containername">The container the file resides in.</param> /// <param name="fileName">The name of the file to get.</param> /// <returns>The file specified.</returns> [HttpGet("{containername}/contentfiles/{fileName}", Name = "Get")] [ProducesResponseType(typeof(FileResult), StatusCodes.Status200OK)] [ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status400BadRequest)] [ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status404NotFound)] [ProducesResponseType(typeof(ErrorResponse), StatusCodes.Status503ServiceUnavailable)] public ActionResult Get(string containername, string fileName) 我检查容器名称和文件名对于我的目的是否有效,然后获取数据。 Swagger 自动给我 *required,但不是最小长度和最大长度,这是有道理的,因为它不知道在哪里可以找到这些。 我希望我能做这样的事情: /// <param name="containername" minimum="3" maximum="63">The container the file resides in.</param> 但它只是放弃了那些。如何将它们添加到我自动生成的 Swagger 文档中(我正在使用 Swashbuckle,以防万一)? 我使用 ASP.NET Core 3.1 Api 项目创建了一个示例项目。 首先让我们看一下控制器,注意 ApiController 属性,并注意 FromRoute 属性: using Microsoft.AspNetCore.Mvc; using System.ComponentModel.DataAnnotations; namespace ValidationExampleApi.Controllers { [ApiController] [Route("[controller]")] public class ValidationController : ControllerBase { [HttpGet("{containername}/contentfiles/{fileName}")] public bool Get([FromRoute]RequestModel request)//it will return 400 bad request if validation fails { if(ModelState.IsValid)//please note in this case this line will never be hit. { return false; } else { return true; } } } } 现在让我们看一下模型并注意带有一些验证规范的数据注释: using Microsoft.AspNetCore.Mvc; using System.ComponentModel.DataAnnotations; namespace ValidationExampleApi.Controllers { public class RequestModel { [Required(AllowEmptyStrings = false)] [StringLength(5, MinimumLength = 2)] public string containername { get; set; } [Required(AllowEmptyStrings = false)] [StringLength(5, MinimumLength = 2)] public string fileName { get; set; } } } 现在让我们看看我的启动类,注意我添加了普通的默认 swashbuckle 配置: using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.OpenApi.Models; namespace ValidationExampleApi { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); }); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if(env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } // Enable middleware to serve generated Swagger as a JSON endpoint. app.UseSwagger(); // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), // specifying the Swagger JSON endpoint. app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); c.RoutePrefix = string.Empty; }); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } } } 现在看看我的招摇如何表明我违反了最大长度: 最后注意事项: 您还可以将路由参数与查询参数结合起来。 您还可以在模型的属性级别应用“FromRoute”属性。 有很多方法可以做到这一点。这只是一个“让您开始”的示例。 自定义错误响应: 在这里您可以看到如何使用错误处理程序以及 InvalidModelStateFactory 和 ValidationProblemDetails:自定义处理错误 这是有关如何使用 InvalidModelStateFactory 的另一个示例: 关于如何自定义错误的另一个示例
在我的 api 操作上添加属性 [ApiExplorerSettings(IgnoreApi = true)] 后,Swagger UI 不显示模型。 在我的 api 上添加属性 [ApiExplorerSettings(IgnoreApi = true)] 之前
我正在使用 Swashbuckle.AspNetCore 6.5.0 视图类型=完整 widgetguid=940FFD66-A7C2-42F5-AAA2-153CBF9136EE 在 Swagger UI 中,当我执行填充了两个路径参数的 API 调用时,它会生成以下内容: 哈...
使用控制器时,您可以在路由中使用枚举,但必须添加以下内容 builder.Services.AddControllers(); .AddJsonOptions(选项=> options.JsonSerializerOptions.Conve...
是否有任何工具可以从 JSON 或 Open API 自动创建类似 wiki 的 REST API 文档?
我有多项服务,每一项服务都通过 REST API 和 ASP.NET Core Web API 公开。我使用 Swashbuckle 作为 ASP.NET Core 工具,以便从我的控制器和 DTO 自动生成所有...
如何配置 Swashbuckle 来隐藏 curl 命令和响应表?
在 SwashbuckleUI 中,我的 CURL 命令可能会变得相当大。如果我对curl感兴趣,我通常只想复制它。 有没有办法将 SwashbuckleUI 配置为 隐藏卷曲命令 隐藏响应表...
我可以将 Swashbuckle 用于与端点不相关的多个文档吗?
我正在构建一个 ASP.NET Core Web API,使用 Swashbuckle 生成一个 swagger 文档页面。我已经使用 Info 对象来自定义描述,但我想知道 Swashbuckle 是否支持添加其他
Swagger 的操作过滤器无法正常工作 - 它在每个 api 端点上显示授权选项
我正在使用.net6.0创建一个api。我想为 api 文档添加 Swagger UI,我添加了它,并且它在大部分情况下都有效。我面临的唯一问题是 swagger UI 在电子设备上显示挂锁...
隐藏标题以防止在 Swagger Swashbuckle 中显示
由于我已经添加了通用授权,如何从每个 API 中删除单独的(授权标头),如下图链接所示? swaggerHub_链接
如何在 AspNetCore 中定义 OpenApi 的文件响应
我正在 AspNet Core 5 中编写一个控制器方法,该方法应该以流的形式返回文件。 [http获取] [路线(“/docs/{id}”)] [产生响应类型(StatusCodes.Status200OK)] 公共异步任务<