Skip to content

Commit 9b7dd19

Browse files
authored
Uplift swagger to 3.0.0 (#579)
* Uplift swagger to 3.0.0 * Add api description for controllers * Update swagger config to hide models
1 parent e2ca4ce commit 9b7dd19

13 files changed

+59
-14
lines changed

.github/workflows/main.yml

+1
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ jobs:
9292
9393
# Generating test coverage report and publishing to Codacy
9494
- name: Run report coverage
95+
if: github.event_name == 'push'
9596
uses: codacy/[email protected]
9697
with:
9798
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}

pom.xml

+3-10
Original file line numberDiff line numberDiff line change
@@ -292,18 +292,11 @@
292292
<artifactId>httpclient</artifactId>
293293
<version>4.5.13</version>
294294
</dependency>
295-
296-
<dependency>
297-
<groupId>io.springfox</groupId>
298-
<artifactId>springfox-swagger-ui</artifactId>
299-
<version>2.6.1</version>
300-
<scope>compile</scope>
301-
</dependency>
302-
295+
303296
<dependency>
304297
<groupId>io.springfox</groupId>
305-
<artifactId>springfox-swagger2</artifactId>
306-
<version>2.6.1</version>
298+
<artifactId>springfox-boot-starter</artifactId>
299+
<version>3.0.0</version>
307300
<scope>compile</scope>
308301
</dependency>
309302

src/main/java/com/ericsson/ei/config/SwaggerConfig.java

+35-3
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,16 @@
2929
import springfox.documentation.spi.DocumentationType;
3030
import springfox.documentation.spring.web.plugins.Docket;
3131
import springfox.documentation.swagger2.annotations.EnableSwagger2;
32+
import springfox.documentation.swagger.web.DocExpansion;
33+
import springfox.documentation.swagger.web.ModelRendering;
34+
import springfox.documentation.swagger.web.OperationsSorter;
35+
import springfox.documentation.swagger.web.TagsSorter;
36+
import springfox.documentation.swagger.web.UiConfiguration;
37+
import springfox.documentation.swagger.web.UiConfigurationBuilder;
38+
39+
import java.util.Collections;
3240

3341
@Configuration
34-
@EnableSwagger2
3542
public class SwaggerConfig {
3643

3744
private static final String CONTACT_NAME = "Eiffel Intelligence Maintainers";
@@ -51,6 +58,30 @@ public Docket api() {
5158
.apiInfo(metaData());
5259
}
5360

61+
/**
62+
* SwaggerUI information
63+
*/
64+
65+
@Bean
66+
UiConfiguration uiConfig() {
67+
return UiConfigurationBuilder.builder()
68+
.deepLinking(true)
69+
.displayOperationId(false)
70+
.defaultModelsExpandDepth(-1)
71+
.defaultModelExpandDepth(1)
72+
.defaultModelRendering(ModelRendering.EXAMPLE)
73+
.displayRequestDuration(false)
74+
.docExpansion(DocExpansion.NONE)
75+
.filter(false)
76+
.maxDisplayedTags(null)
77+
.operationsSorter(OperationsSorter.ALPHA)
78+
.showExtensions(false)
79+
.tagsSorter(TagsSorter.ALPHA)
80+
.supportedSubmitMethods(UiConfiguration.Constants.DEFAULT_SUBMIT_METHODS)
81+
.validatorUrl(null)
82+
.build();
83+
}
84+
5485
private ApiInfo metaData() {
5586
ApiInfo apiInfo = new ApiInfo(
5687
"Eiffel Intelligence REST API",
@@ -59,7 +90,8 @@ private ApiInfo metaData() {
5990
"Terms of service",
6091
new Contact(CONTACT_NAME, CONTACT_URL, CONTACT_EMAIL),
6192
"Apache License Version 2.0",
62-
"https://www.apache.org/licenses/LICENSE-2.0");
93+
"https://www.apache.org/licenses/LICENSE-2.0",
94+
Collections.emptyList());
6395
return apiInfo;
6496
}
65-
}
97+
}

src/main/java/com/ericsson/ei/controller/AggregatedObjectControllerImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,15 @@
3838
import com.fasterxml.jackson.databind.ObjectMapper;
3939

4040
import io.swagger.annotations.ApiOperation;
41+
import io.swagger.annotations.Api;
4142

4243
/**
4344
* This class represents the REST GET mechanism to extract the aggregated data on the basis of the
4445
* Id from the aggregatedObject.
4546
*/
4647
@Component
4748
@CrossOrigin
49+
@Api(tags = {"Aggregated objects"}, description = "Fetch aggregated data based on Id")
4850
public class AggregatedObjectControllerImpl implements AggregatedObjectController {
4951

5052
private static final Logger LOGGER = LoggerFactory.getLogger(AggregatedObjectControllerImpl.class);

src/main/java/com/ericsson/ei/controller/AuthenticationControllerImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,15 @@
3131
import com.ericsson.ei.utils.ResponseMessage;
3232

3333
import io.swagger.annotations.ApiOperation;
34+
import io.swagger.annotations.Api;
3435

3536
/**
3637
* Endpoint /authentication/login should be secured if LDAP is enabled.
3738
* Endpoint /authentication should never be secured.
3839
*/
3940
@Component
4041
@CrossOrigin
42+
@Api(tags = {"Authentication"}, description = "Authentication queries")
4143
public class AuthenticationControllerImpl implements AuthenticationController {
4244

4345
private static final Logger LOGGER = LoggerFactory.getLogger(AuthenticationControllerImpl.class);

src/main/java/com/ericsson/ei/controller/EIHomeController.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.ericsson.ei.controller;
1818

1919
import io.swagger.annotations.ApiOperation;
20+
import springfox.documentation.annotations.ApiIgnore;
2021
import org.springframework.stereotype.Controller;
2122
import org.springframework.web.bind.annotation.RequestMapping;
2223
import org.springframework.web.bind.annotation.RequestMethod;
@@ -27,11 +28,12 @@
2728
*
2829
*/
2930
@Controller
31+
@ApiIgnore
3032
public class EIHomeController {
3133

3234
@ApiOperation(value="", hidden = true)
3335
@RequestMapping(value = "/", method = RequestMethod.GET)
3436
public String home() {
35-
return "redirect:/swagger-ui.html";
37+
return "redirect:/swagger-ui/index.html";
3638
}
3739
}

src/main/java/com/ericsson/ei/controller/FailedNotificationControllerImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,14 @@
3434
import com.ericsson.ei.utils.ResponseMessage;
3535

3636
import io.swagger.annotations.ApiOperation;
37+
import io.swagger.annotations.Api;
3738

3839
/**
3940
* This class contains logic for retrieving failed notifications for the given subscription.
4041
*/
4142
@Component
4243
@CrossOrigin
44+
@Api(tags = {"Failed notifications"}, description = "Fetch failed notifications of a subscription")
4345
public class FailedNotificationControllerImpl implements FailedNotificationController {
4446

4547
private final static Logger LOGGER = LoggerFactory.getLogger(

src/main/java/com/ericsson/ei/controller/InformationControllerImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.ericsson.ei.utils.ResponseMessage;
1818
import com.fasterxml.jackson.databind.ObjectMapper;
1919
import io.swagger.annotations.ApiOperation;
20+
import io.swagger.annotations.Api;
2021

2122
import javax.servlet.http.HttpServletRequest;
2223

@@ -30,6 +31,7 @@
3031

3132
@Component
3233
@CrossOrigin
34+
@Api(tags = {"Information"}, description = "Information about Eiffel Intelligence backend")
3335
public class InformationControllerImpl implements InformationController {
3436
private static final Logger LOGGER = LoggerFactory.getLogger(InformationControllerImpl.class);
3537

src/main/java/com/ericsson/ei/controller/RuleControllerImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@
3535
import com.fasterxml.jackson.databind.ObjectMapper;
3636

3737
import io.swagger.annotations.ApiOperation;
38+
import io.swagger.annotations.Api;
3839

3940
@Component
4041
@CrossOrigin
42+
@Api(tags = {"Rules"}, description = "Active rules queries")
4143
public class RuleControllerImpl implements RuleController{
4244

4345
private static final Logger LOGGER = LoggerFactory.getLogger(RuleControllerImpl.class);

src/main/java/com/ericsson/ei/controller/RuleTestControllerImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@
2727
import io.netty.util.internal.StringUtil;
2828
import io.swagger.annotations.ApiOperation;
2929
import io.swagger.annotations.ApiParam;
30+
import io.swagger.annotations.Api;
3031
import lombok.Setter;
3132

3233
@Component
3334
@CrossOrigin
35+
@Api(tags = {"Rule-test"}, description = "Test rules on Eiffel events")
3436
public class RuleTestControllerImpl implements RuleTestController {
3537
private static final Logger LOGGER = LoggerFactory.getLogger(RuleTestControllerImpl.class);
3638

src/main/java/com/ericsson/ei/controller/StatusControllerImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@
3232
import com.fasterxml.jackson.databind.ObjectMapper;
3333

3434
import io.swagger.annotations.ApiOperation;
35+
import io.swagger.annotations.Api;
3536

3637
/**
3738
* Endpoint /status should display EI back-end status and services Eiffel Intelligence is dependent
3839
* on.
3940
*/
4041
@Component
4142
@CrossOrigin
43+
@Api(tags = {"Status"}, description = "Information of EI and its dependencies")
4244
public class StatusControllerImpl implements StatusController {
4345

4446
private static final Logger LOGGER = LoggerFactory.getLogger(StatusControllerImpl.class);

src/main/java/com/ericsson/ei/controller/SubscriptionControllerImpl.java

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353

5454
@Component
5555
@CrossOrigin
56+
@Api(tags = {"Subscriptions"}, description = "Subscription handling requests")
5657
public class SubscriptionControllerImpl implements SubscriptionController {
5758

5859
private static final Logger LOGGER = LoggerFactory.getLogger(SubscriptionControllerImpl.class);

src/main/java/com/ericsson/ei/controller/TemplateControllerImpl.java

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import javax.servlet.http.HttpServletRequest;
2222

2323
import io.swagger.annotations.ApiOperation;
24+
import io.swagger.annotations.Api;
2425
import org.apache.commons.io.IOUtils;
2526
import org.json.JSONObject;
2627
import org.slf4j.Logger;
@@ -34,6 +35,7 @@
3435

3536
@Component
3637
@CrossOrigin
38+
@Api(tags = {"Templates"}, description = "Templates of rules, Eiffel events and subscriptions")
3739
public class TemplateControllerImpl implements TemplateController {
3840

3941
private static final Logger LOGGER = LoggerFactory.getLogger(

0 commit comments

Comments
 (0)