当前应用程序使用Swashbuckle。AspNetCore版本1.1.0今年的目标是执行框架到。net core 3.1或。net 5同时升级Swashbuckle。AspNetCore升级到6.1.5Find out不再有operationid,需要自定义它参考https://github.com/domaindrivendev/Swashbuckle.AspNetCore/blob/master/README.md#assign-explicit-operationids
我关心的是如何获得相同的operationid(与1.1.0版本相同)
下面是1.1.0版本的swagger json输出示例
api route with parameter (difficult)
{
"/api/Games/{id}": {
"post": {
"tags": ["Games"],
"operationId": "ApiGamesByIdPost"
}
}
}
正常样本
{
"/api/Games/Sequence": {
"get": {
"operationId": "ApiGamesSequenceGet"
}
i将被解析为
options.CustomOperationIds(apiDesc =>
{
return apiDesc.RelativePath.Replace("/", "") + apiDesc.HttpMethod;
});
,但它只能解析正常样本,而不能解析带有参数
的API路由。您可以将任何字符串放入HTTP方法属性
的Name
属性中。[HttpPost("someobject/add", Name = "ApiGamesSequenceGet")]
Swashbuckle将把该值作为动作方法的operationId
。