当前位置: 首页 > 知识库问答 >
问题:

Springdoc中基于Swagger注释的自动描述生成

仇正平
2023-03-14

基本上,我的问题与这个问题相同,只是针对Springdoc(而不是Springfox)。

简而言之,我有一个Spring Boot应用程序,我正在使用Spring Security@PreAuthorize注释来保护我的一些apis,目前仅基于hasAuthe

有没有一种方法可以根据注释自动修改特定的资源炫耀描述?我想这与重写Springdoc的一个默认类行为有关(可能是OpenAPICustomiser?)但我不知道怎么做。

共有1个答案

衡翰翮
2023-03-14

好吧,我已经想出了这样的事情-

java prettyprint-override">@Configuration
public class SpringdocPreAuthorize {
    @Bean
    public OperationCustomizer operationCustomizer() {
        return (operation, handlerMethod) -> {
            Optional<PreAuthorize> preAuthorizeAnnotation = Optional.ofNullable(handlerMethod.getMethodAnnotation(PreAuthorize.class));
            StringBuilder sb = new StringBuilder();
            if (preAuthorizeAnnotation.isPresent()) {
                sb.append("This api requires **")
                        .append((preAuthorizeAnnotation.get()).value().replaceAll("hasAuthority|\\(|\\)|\\'", ""))
                        .append("** permission.");
            } else {
                sb.append("This api is **public**");
            }
            sb.append("<br /><br />");
            sb.append(operation.getDescription());
            operation.setDescription(sb.toString());
            return operation;
        };
    }
}
 类似资料:
  • 我有一个字段有更大的描述。 在swagger-ui页面中,描述是内联的。在对模型进行文档化时,有什么方法可以让“\n”起作用吗?

  • 当我使用Spring framework时,我经常看到2个术语基于Java和基于注释的配置/自动生成。 如果它们不一样,你能告诉我它们之间有什么不同吗?

  • 我正在尝试大摇大摆地记录我的 API,该 API 由泽西Spring 2.22.2 与Spring 4.3 和杰克逊 2.22.2 组成。 我使用的swagger软件包是: endpoint声明之一: 这就是此endpoint生成的 JSON 的样子: 当我试图在swagger编辑器中解析这个输出时,它会返回错误,我认为原因可能是在“paramas”name参数中,它创建了它的对象类型而不是模式。

  • 所以我有一个spring boot项目,我刚刚添加了OpenAPI Swigger UI。它可以自动生成所有控制器和模型的文档。但我想添加一些额外的配置,比如这里显示的externalDocs。 但由于它是自动生成的,我没有一个扬眉吐气的YAML。我试图通过一个没有运气的豆子添加以下内容。 下面是我的Pom。xml,如果需要的话。 谢谢你的建议。

  • 问题内容: 如何在Eclipse中自动生成基于xml的函数标头注释(@param等)。在Visual Studio中是否有等效的“ ///”快捷方式。 问题答案: 在方法定义之前的那一行中,键入并按Enter。 在IDE中,在方法前键入,然后按Enter。Eclipse将自动生成Javadoc标记并结束

  • 问题内容: 是否可以访问字段值,该字段名在注释中描述,该注释在类中注释了另一个字段。 例如: 注解: 现在,是否可以从ConstraintValidator实现类中的User类访问字段密码? 编辑: 我写了这样的东西: 现在的问题是如何获取用户对象实例并比较字段值? 问题答案: 您或者需要编写一个类级别的约束,以便在其中将完整的 User 实例传递给 isValid 调用,或者可以使用类似 @Sc