From ffabc5ce53aada376274c6b517a7bc777ff1bb6a Mon Sep 17 00:00:00 2001 From: killerber4t Date: Wed, 4 Mar 2020 13:42:45 +0100 Subject: [PATCH] add swagger-API and example controller --- build.gradle | 15 ++++++++++++ .../mops/gruppen2/Gruppen2Application.java | 12 ++++++++++ .../controllers/SwaggerAPIController.java | 24 +++++++++++++++++++ src/main/resources/application.properties | 6 +++++ 4 files changed, 57 insertions(+) create mode 100644 src/main/java/mops/gruppen2/controllers/SwaggerAPIController.java diff --git a/build.gradle b/build.gradle index 1faa99c..a6e65a3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,5 @@ +import com.github.spotbugs.SpotBugsTask + plugins { id 'org.springframework.boot' version '2.2.5.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' @@ -11,7 +13,12 @@ spotbugs{ reportLevel = "high" toolVersion = '4.0.0-RC1' } +<<<<<<< Updated upstream tasks.withType(com.github.spotbugs.SpotBugsTask) { +======= + +tasks.withType(SpotBugsTask) { +>>>>>>> Stashed changes reports { html { enabled = true @@ -52,8 +59,14 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' +<<<<<<< Updated upstream implementation 'org.keycloak:keycloak-spring-boot-starter:9.0.0' implementation 'org.keycloak.bom:keycloak-adapter-bom:3.3.0.Final' +======= + implementation 'mops:styleguide:2.0.0' + compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.7.0' + compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.7.0' +>>>>>>> Stashed changes compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.h2database:h2' @@ -62,8 +75,10 @@ dependencies { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } testImplementation 'org.springframework.security:spring-security-test' + compile('org.springframework.boot:spring-boot-starter-web') } test { useJUnitPlatform() } + diff --git a/src/main/java/mops/gruppen2/Gruppen2Application.java b/src/main/java/mops/gruppen2/Gruppen2Application.java index 91f1872..2e7599a 100644 --- a/src/main/java/mops/gruppen2/Gruppen2Application.java +++ b/src/main/java/mops/gruppen2/Gruppen2Application.java @@ -2,10 +2,22 @@ package mops.gruppen2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; @SpringBootApplication +@EnableSwagger2 public class Gruppen2Application { public static void main(String[] args) { SpringApplication.run(Gruppen2Application.class, args); } + + @Bean + public Docket productAPI(){ + return new Docket(DocumentationType.SWAGGER_2).select() + .apis(RequestHandlerSelectors.basePackage("mops.gruppen2")).build(); + } } diff --git a/src/main/java/mops/gruppen2/controllers/SwaggerAPIController.java b/src/main/java/mops/gruppen2/controllers/SwaggerAPIController.java new file mode 100644 index 0000000..6811f25 --- /dev/null +++ b/src/main/java/mops/gruppen2/controllers/SwaggerAPIController.java @@ -0,0 +1,24 @@ +package mops.gruppen2.controllers; + + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +@RestController +public class SwaggerAPIController { + @RequestMapping(value = "/products", method = RequestMethod.GET) + public List getProducts(){ + List productList = new ArrayList<>(); + productList.add("Honey"); + productList.add("Almond"); + return productList; + } + @RequestMapping(value = "/products", method = RequestMethod.POST) + public String createProduct() { + return "Product is saved successfully"; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 34d7960..25ca83c 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -9,9 +9,15 @@ spring.datasource.username=root spring.datasource.password=geheim spring.jpa.database-platform=org.hibernate.dialect.H2Dialect +<<<<<<< Updated upstream keycloak.principal-attribute=preferred_username keycloak.auth-server-url=https://keycloak.cs.hhu.de/auth keycloak.realm=MOPS keycloak.resource=demo keycloak.public-client=true +======= +spring.security.user.name=root +spring.security.user.password=1234 +spring.security.user.roles=ADMIN +>>>>>>> Stashed changes