Swashbuckle是一个开源框架,它将Swagger和Swagger-ui添加到ASP.NET Web API项目中。
如何在 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)] 公共异步任务<
如何在 Swagger .json 文件中包含ControllerXmlComments?
对于我的 .net core 8.0 api 项目,我使用 Swashbuckle.AspNetCore 6.5.0 到 .AddSwaggerGen(),它在 http://localhost:5229/swagger/my_api_name/swagger 生成并提供 .json 文件。 json t...
嗨,我已经为我的 .net core Web 应用程序开发了 swagger UI。我已经添加了身份验证。我已在 Azure AD 中注册了两个应用程序。一种用于 Swagger,一种用于后端 .Net core...
ASP.NET Core 6 中的 AddEndpointsApiExplorer 是什么
我正在将 ASP.NET Core API 项目从 v5 升级到 v6。 v5 中的服务配置: services.AddSwaggerGen(); v6 中的服务配置: builder.Services.AddEndpointsApiExplorer(); // 这是什么? 建设者。
如何从 jsonresult 响应自动生成 OpenAPI 文档?
Swashbuckle可以根据代码自动生成API文档(有详细返回模型) [http获取] 公共 ActionResult> GetStudents() { 返回 CollegeReposi...
Swashbuckle.AspNetCore 必需的查询字符串参数
我有一个带有 Swashbuckle.AspNetCore 包的 ASP.NET Core v2.1 项目。 我的代码是: /// /// 为当前驱动程序设置新的android令牌 /// /// <