Skip to content

Commit f60b24c

Browse files
committed
Merge pull request eugenp#288 from alexVengrovsk/master
Fixed code for Setting Up Swagger 2 with a Spring REST API article
2 parents 93b74b1 + 33c3faf commit f60b24c

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed

spring-security-rest/pom.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,19 @@
167167
<scope>test</scope>
168168
</dependency>
169169

170+
<!-- swagger -->
171+
<dependency>
172+
<groupId>io.springfox</groupId>
173+
<artifactId>springfox-swagger2</artifactId>
174+
<version>2.2.2</version>
175+
</dependency>
176+
177+
<dependency>
178+
<groupId>io.springfox</groupId>
179+
<artifactId>springfox-swagger-ui</artifactId>
180+
<version>2.2.2</version>
181+
</dependency>
182+
170183
</dependencies>
171184

172185
<build>
@@ -260,6 +273,10 @@
260273
<junit.version>4.11</junit.version>
261274
<mockito.version>1.10.19</mockito.version>
262275

276+
<!-- swagger -->
277+
<springfox-swagger.version>2.2.2</springfox-swagger.version>
278+
<springfox-swagger-ui.version>2.2.2</springfox-swagger-ui.version>
279+
263280
<httpcore.version>4.4.1</httpcore.version>
264281
<httpclient.version>4.5</httpclient.version>
265282

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package org.baeldung.spring;
2+
3+
import org.springframework.context.annotation.Bean;
4+
import org.springframework.context.annotation.Configuration;
5+
import org.springframework.web.bind.annotation.RequestMethod;
6+
import springfox.documentation.builders.PathSelectors;
7+
import springfox.documentation.builders.RequestHandlerSelectors;
8+
import springfox.documentation.builders.ResponseMessageBuilder;
9+
import springfox.documentation.schema.ModelRef;
10+
import springfox.documentation.service.ApiInfo;
11+
import springfox.documentation.spi.DocumentationType;
12+
import springfox.documentation.spring.web.plugins.Docket;
13+
import springfox.documentation.swagger2.annotations.EnableSwagger2;
14+
15+
import static com.google.common.collect.Lists.newArrayList;
16+
17+
@Configuration
18+
@EnableSwagger2
19+
public class SwaggerConfig {
20+
21+
@Bean
22+
public Docket api(){
23+
return new Docket(DocumentationType.SWAGGER_2)
24+
.select()
25+
.apis(RequestHandlerSelectors.basePackage("org.baeldung.web.controller"))
26+
.paths(PathSelectors.ant("/foos/*"))
27+
.build()
28+
.apiInfo(apiInfo())
29+
.useDefaultResponseMessages(false)
30+
.globalResponseMessage(RequestMethod.GET,
31+
newArrayList(new ResponseMessageBuilder()
32+
.code(500)
33+
.message("500 message")
34+
.responseModel(new ModelRef("Error"))
35+
.build(),
36+
new ResponseMessageBuilder()
37+
.code(403)
38+
.message("Forbidden!!!!!")
39+
.build()));
40+
}
41+
42+
private ApiInfo apiInfo() {
43+
ApiInfo apiInfo = new ApiInfo(
44+
"My REST API",
45+
"Some custom description of API.",
46+
"API TOS",
47+
"Terms of service",
48+
49+
"License of API",
50+
"API license URL");
51+
return apiInfo;
52+
}
53+
}

spring-security-rest/src/main/java/org/baeldung/spring/WebConfig.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.springframework.context.annotation.ComponentScan;
44
import org.springframework.context.annotation.Configuration;
55
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
6+
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
67
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
78

89
@Configuration
@@ -14,4 +15,13 @@ public WebConfig() {
1415
super();
1516
}
1617

18+
@Override
19+
public void addResourceHandlers(ResourceHandlerRegistry registry) {
20+
registry.addResourceHandler("swagger-ui.html")
21+
.addResourceLocations("classpath:/META-INF/resources/");
22+
23+
registry.addResourceHandler("/webjars/**")
24+
.addResourceLocations("classpath:/META-INF/resources/webjars/");
25+
}
26+
1727
}

0 commit comments

Comments
 (0)