如何在类控制器中实现api swagger的spring注释?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在类控制器中实现api swagger的spring注释?相关的知识,希望对你有一定的参考价值。

我正在开发一个RESTfull Web服务,它使用swagger与swagger-codegen-maven-pluginto创建模型,控制和api类(这是一个与spring annotatios的接口)。

pom.xml中的插件是下一个:

     <plugin>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-codegen-maven-plugin</artifactId>
            <version>2.2.3</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>C:API.yaml</inputSpec>
                        <language>spring</language>
                        <configOptions>
                            <dateLibrary>java8</dateLibrary>
                            <useTags>true</useTags>
                            <sourceFolder>/</sourceFolder>
                        </configOptions>
                    </configuration>
                </execution>
            </executions>           
    </plugin>

当我想创建一个新的控制器类(它与Swagger创建的控制器类不同)时,它实现了api类和方法的签名,但是,这个类不会在方法的参数中写注释(例如:@ RequestParam,@ RequestHeader等)

Api接口;

public interface Api{

    @RequestMapping(value = "/class-services",
        method = RequestMethod.GET)
    default ResponseEntity<XXXType> getClass(@ApiParam(value = "id" ,required=true) @RequestHeader(value="Id", required=true) String id) {
        // do some magic!
        return new ResponseEntity<XXXType>(HttpStatus.OK);
    }

}

控制器类:

@Controller
public class controller implements Api {

    public ResponseEntity<XXXType> getClass(String id) {
        // do some magic!
       return new ResponseEntity<XXXType>(HttpStatus.OK);
    }

}

swagger-ui的结果定义了每个参数,如'query'。 Swagger不区分标头参数类型。

我想知道在实现Api类时是否存在某种方法来扩展接口旁边的annotatios,(我想知道复制和粘贴符号方法)。

注意:我使用Java 8作为LocalTime和LocalDate类。

问候。

答案

swagger-codegen-maven-plugin的<delegatePattern>true</delegatePattern>中的<configOptions>参数帮助我解决了类似的问题。

以上是关于如何在类控制器中实现api swagger的spring注释?的主要内容,如果未能解决你的问题,请参考以下文章

如何在类中实现mousePressEvent(QMouseEvent * event)?

如何使用api在codeigniter中实现paypal定期付款

如何在类中实现标准迭代器

使用 Swagger 在 ASP.NET Core 中实现 OAuth

在 Spring MVC 应用程序中实现 Swagger 的“简单”方法

如何在 ASP.Net MVC 中实现视频文件流式传输?