问题:
我有 Rest Endpoint,路由参数看起来像这样
[HttpDelete("{id}")]
public async Task<IActionResult> DeleteDocument([FromRoute] DeleteDocumentRequest request)
“DeleteDocumentRequest”有一个gettor/settor
public Guid Id {get; set;}
但是,当 swagger gen 将其序列化到 OpenApi 3.0 时,它会产生错误,因为类中的属性“Id”的大小写与路由中的属性“id”不匹配。
问题:
我如何重写序列化程序以将我的所有属性更改为驼峰式命名以确保一致性?
在 .NET 6 中使用 Newtonsoft Json,我尝试使用 CamelCasePropertyNamesContractResolver 以及 ResolvePropertyName 和 CreateProperties 的覆盖,但 Controller 端点中的参数不是被命中的“属性”。
最佳答案
我能够通过将以下内容添加到 Swagger Gen 设置中来解决它。感谢@jspcal 提供相关问题的链接。
services.AddSwaggerGen(c =>
{
c.DescribeAllParametersInCamelCase();
});
关于json.net - Swagger Gen 中的 Force Camel 大小写参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72307923/