我正在开发一个RESTfull Web服务,它使用swagger与swagger-codegen-maven-plugin
to创建模型,控制和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>
参数帮助我解决了类似的问题。