如何解决Swagger端点排序
我将swagger-core和swagger-jaxrs2集成到我的应用程序中,并且试图更改生成的yaml / json文件中端点的顺序。
例如,昂首阔步的结果如下:
GET: /api/users/{userId}
PUT: /api/users/{userId}
DELETE: /api/users{userId}
POST: /api/users
我希望POST方法优先于其他方法。要提及的是,所有4个端点都在同一标签下,但POST方法与其他3个端点在单独的资源中。
我考虑过使用OpenApi Reader的read方法并设置自定义顺序,但是我不确定这是要走的路。
public OpenAPI read(Set<Class<?>> classes) {
排序方法只是一个TreeSet,它检查类的名称并将其用作排序器(如果我正确理解的话-Java新手在这里)。
public OpenAPI read(Set<Class<?>> classes) {
Set<Class<?>> sortedClasses = new TreeSet<>((class1,class2) -> {
if (class1.equals(class2)) {
return 0;
} else if (class1.isAssignableFrom(class2)) {
return -1;
} else if (class2.isAssignableFrom(class1)) {
return 1;
}
return class1.getName().compareTo(class2.getName());
});
sortedClasses.addAll(classes);
}
由于我的类分别称为UserResource和UsersResource,因此按字母顺序,Users排在UserR之前。
如何才能覆盖此方法以进行自己的排序?注释会有所帮助吗?我假设我需要在@Operation标记中添加一些自定义注释,以定义一些排序参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。