refine swagger example
This commit is contained in:
@ -3,11 +3,16 @@ package mops.gruppen2;
|
|||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import springfox.documentation.builders.PathSelectors;
|
||||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||||
|
import springfox.documentation.service.ApiInfo;
|
||||||
|
import springfox.documentation.service.Contact;
|
||||||
import springfox.documentation.spi.DocumentationType;
|
import springfox.documentation.spi.DocumentationType;
|
||||||
import springfox.documentation.spring.web.plugins.Docket;
|
import springfox.documentation.spring.web.plugins.Docket;
|
||||||
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableSwagger2
|
@EnableSwagger2
|
||||||
public class Gruppen2Application {
|
public class Gruppen2Application {
|
||||||
@ -17,7 +22,24 @@ public class Gruppen2Application {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public Docket productAPI() {
|
public Docket productAPI() {
|
||||||
return new Docket(DocumentationType.SWAGGER_2).select()
|
return new Docket(DocumentationType.SWAGGER_2)
|
||||||
.apis(RequestHandlerSelectors.basePackage("mops.gruppen2")).build();
|
.select()
|
||||||
|
.paths(PathSelectors.ant("/products/**"))
|
||||||
|
.apis(RequestHandlerSelectors.basePackage("mops.gruppen2"))
|
||||||
|
.build()
|
||||||
|
.apiInfo(apiMetadata());
|
||||||
|
}
|
||||||
|
|
||||||
|
private ApiInfo apiMetadata() {
|
||||||
|
return new ApiInfo(
|
||||||
|
"Gruppenbildung API",
|
||||||
|
"API zum anfragen/aktualisieren der Gruppendaten.",
|
||||||
|
"0.0.1",
|
||||||
|
"Free to use",
|
||||||
|
new Contact("gruppen2", "https://github.com/hhu-propra2/abschlussprojekt-it-bois", ""),
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
Collections.emptyList()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,31 +0,0 @@
|
|||||||
package mops.gruppen2.controller;
|
|
||||||
|
|
||||||
|
|
||||||
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 {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Ein Beispiel für eine API mit Swagger.
|
|
||||||
*
|
|
||||||
* @return Eine Liste von Produkten, repräsentiert durch Strings
|
|
||||||
*/
|
|
||||||
@RequestMapping(value = "/products", method = RequestMethod.GET)
|
|
||||||
public List<String> getProducts() {
|
|
||||||
List<String> 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";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
package mops.gruppen2.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.github.javafaker.Faker;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
|
import mops.gruppen2.domain.ProductSwaggerExample;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ein Beispiel für eine API mit Swagger.
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/products")
|
||||||
|
public class SwaggerAPIControllerExample {
|
||||||
|
|
||||||
|
private final Faker faker = new Faker();
|
||||||
|
private final List<ProductSwaggerExample> products = new ArrayList<>();
|
||||||
|
|
||||||
|
@GetMapping("/get/all")
|
||||||
|
@ApiOperation(value = "Erzeugt eine Liste mit allen gespeicherten Produkten")
|
||||||
|
public List<ProductSwaggerExample> getProducts() {
|
||||||
|
return products;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get/{index}")
|
||||||
|
public ProductSwaggerExample getProduct(@ApiParam("Produkt Index") @PathVariable int index) {
|
||||||
|
return products.get(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/save")
|
||||||
|
public String saveProduct(@RequestBody ProductSwaggerExample product) {
|
||||||
|
products.add(product);
|
||||||
|
|
||||||
|
return "Product saved successfully";
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/random")
|
||||||
|
public String saveRandomProduct() {
|
||||||
|
products.add(new ProductSwaggerExample(faker.food().ingredient(), "Empty"));
|
||||||
|
|
||||||
|
return "Product saved successfully";
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package mops.gruppen2.domain;
|
||||||
|
|
||||||
|
import lombok.Value;
|
||||||
|
|
||||||
|
// @ApiModelProperty
|
||||||
|
@Value
|
||||||
|
public class ProductSwaggerExample {
|
||||||
|
|
||||||
|
// @ApiModelProperty
|
||||||
|
String name;
|
||||||
|
String description;
|
||||||
|
}
|
||||||
@ -74,8 +74,6 @@ class SecurityConfig extends KeycloakWebSecurityConfigurerAdapter {
|
|||||||
http.headers().frameOptions().disable();
|
http.headers().frameOptions().disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Declaring this class enables us to use the Spring specific
|
* Declaring this class enables us to use the Spring specific
|
||||||
* {@link org.springframework.security.access.annotation.Secured} annotation
|
* {@link org.springframework.security.access.annotation.Secured} annotation
|
||||||
|
|||||||
@ -14,4 +14,3 @@ keycloak.auth-server-url=https://keycloak.cs.hhu.de/auth
|
|||||||
keycloak.realm=MOPS
|
keycloak.realm=MOPS
|
||||||
keycloak.resource=demo
|
keycloak.resource=demo
|
||||||
keycloak.public-client=true
|
keycloak.public-client=true
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user