swagger2를 사용하여 Spring 부트 애플리케이션의 REST API 문서를 생성하려고합니다. Application.JavaSwagger2를 사용하여 스프링 부트 REST API 문서를 생성하는 방법은 무엇입니까?
다음import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.ResponseEntity;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.ApiSelectorBuilder;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger.web.UiConfiguration;
import static springfox.documentation.builders.PathSelectors.*;
@Configuration
public class ApiDocumentationConfiguration {
@Bean
public Docket documentation() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
//.paths(regex("/.*"))
.build()
.pathMapping("/")
.apiInfo(metadata());
}
@Bean
public UiConfiguration uiConfig() {
return UiConfiguration.DEFAULT;
}
private ApiInfo metadata() {
return new ApiInfoBuilder()
.title("My awesome API")
.description("Some description")
.version("1.0")
.contact("[email protected]")
.build();
}
}
은 다음과 같습니다 : 여기
server.port = ${port:8082}
server.contextPath=/myServicePath
spring.h2.console.enabled=true
logging.level.org.hibernate.SQL=debug
spring.datasource.url=jdbc:mysql://${mysql-host:localhost}:${mysql-port:3306}/${mysql-dbname:mydb}
spring.datasource.username=${mysql-user:root}
spring.datasource.password=${mysql-password:password}
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
내 swaggerConfig.Java입니다 : 여기
내 application.properties 파일의 내용이다
다음import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@ComponentScan
@EnableSwagger2
public class Application {
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
}
가 내 제어기 :
@Path("/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@RestController
public class MyController {
@Autowired
private HttpServletRequest request;
@ApiOperation(value = "doStuff", nickname = "doStuff", response = Response.class)
@RequestMapping(method = RequestMethod.GET, produces = "application/json")
public String doStuff(@RequestBody String command) {
return "TestString";
}
}
스프링 부트 1.4.0 및 swagger2를 사용하고 있습니다. 나는 나의의 pom.xml에 의존성 아래에 추가 한 :
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.1.1</version>
</dependency>
내가 URL을 http://localhost:8082/swagger-ui.html 사용 내가 오류 404
있어사람이 파악하는 데 도움이 수 있습니까?
미리 감사드립니다.
당신이 Path' @'사용하는 이유는 무엇입니까? –
@ CássioMazzochiMolin application.properties에 contextPath를 정의했습니다. – Vishwas
'@ Path'는 JAX-RS에서 온 것입니다. 그 주석으로 무엇을 달성하려고하는지 잘 모르겠습니다. 그런데 JAX-RS의'@ Produces'와'@ Consumes'도 있습니다. –