使用Swagger与C#开发Minimal API:如何定义Header参数?
在Swagger中为C# Minimal API定义Header参数
我正在用Swagger和C#开发Minimal API,不清楚怎么定义Header参数,比如想要类似[SwaggerHeaderParameter("apikey", "description...")]这样的形式,找了很多办法都没找到简便的解决方案,希望能得到帮助。
原始示例代码
using Swashbuckle.AspNetCore; app.MapPut("/myapi", [SwaggerResponse(200, "Success")] [SwaggerResponse(400, "Bad request")] async Task<IResult> (HttpRequest request, ILogger<Program> log, CancellationToken ct) => { var result = await request.ReadFromJsonAsync<MyClass[]>(request.HttpContext.RequestAborted); // [Required] 对应supplierID和Stocknumber组合的唯一API密钥 var apikey = request.Headers["apikey"].ToString(); return Results.Ok(successList); }) .Accepts<MyClass[]>(false, "application/json") .Produces<string[]>(StatusCodes.Status200OK, "text/plain") .Produces<Error>(StatusCodes.Status400BadRequest)
改进后的代码(感谢@Guru Stron的帮助)
app.MapPut("/myapi", [SwaggerResponse(200, "Success")] [SwaggerResponse(400, "Bad request")] async Task<IResult> (HttpRequest request, [FromHeader] string apikey, ILogger<Program> log, CancellationToken ct) => { ... }) ...
内容的提问来源于stack exchange,提问作者Bjorn
相关产品推荐
相关产品推荐

