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

问题描述 投票:1回答:1

我正在开发一个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类。

问候。

java spring maven spring-mvc
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.