gpt4 book ai didi

swagger - Swashbuckle 自定义字符串比较器不适用于订单操作组

转载 作者:行者123 更新时间:2023-12-02 10:17:56 24 4
gpt4 key购买 nike

在 Swashbuckle 中,有一个名为 OrderActionGroupsBy 的设置,它应该更改 API 内的排序,但我所做的一切都不起作用,而且我无法确定这是否是 Swashbuckle 问题,或者由于我的 IComparer 的任何想法我做错了什么?

这是设置配置

       config.EnableSwagger(c =>
{
...
c.OrderActionGroupsBy(new CustomStringComparer());
c.GroupActionsBy(apiDesc => GroupBy(apiDesc));
...
}

这是按类型而不是 Controller 名称对操作进行分组。

        private static string GroupBy(ApiDescription apiDesc)
{
var controllerName = apiDesc.ActionDescriptor.ControllerDescriptor.ControllerName;
var path = apiDesc.RelativePath;

if (controllerName.Contains("Original"))
{
controllerName = controllerName.Replace("Original", "");
}
// Check if it is one of the entities if so group by that
// Otherwise group by controller
var entities = new List<string>() { "Users", "Apps", "Groups" };


var e = entities.Where(x => attr.Contains(x.ToLower())).FirstOrDefault();
if (e != null)
{
return e;
}
return controllerName;
}

这是我对 IComparer 的尝试,我希望首先是用户,然后是按字母顺序排列的

        class CustomStringComparer : IComparer<string>
{
public int Compare(string x, string y)
{
if (x.CompareTo(y) == 0)
return 0;

if (x.CompareTo("Users") == 0)
return -1;
if (y.CompareTo("Users") == 0)
return 1;

return x.CompareTo(y);
}
}
}

这不起作用,无论我做什么,它总是默认为字母顺序。

最佳答案

看起来这是 Swashbuckle/Swagger-ui 的一个错误

使用 OrderActionGroupsBy 可以正确对 JSON 文件进行排序,但是 swagger ui 会自动将其按照字母顺序排序。

我已经向 Swashbuckle 和 swagger-ui 提交了错误,因为这似乎违背了 swagger-ui 文档中有关 apisSorter 的内容。

Apply a sort to the API/tags list. It can be 'alpha' (sort by name) or a function (see Array.prototype.sort() to know how sort function works). Default is the order returned by the server unchanged.

Swashbuckle issue

swagger-ui issue

swagger-ui specific stackoverflow question

关于swagger - Swashbuckle 自定义字符串比较器不适用于订单操作组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33683183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com