Skip to content

Commit 778356e

Browse files
committed
main feature:
merge with swagger and test feature
2 parents 7a41f56 + d56777d commit 778356e

4 files changed

Lines changed: 59 additions & 4 deletions

File tree

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ this project, implement instance of basic feature, <br> you maybe want use for A
1717
- use annotation for validation
1818
- use log for validation error
1919
- define your validation and use for model
20+
- TestUtils
21+
- generator data with javaFaker
22+
- unit and integration test with <b>Spock</b> Framework
23+
- SwaggerAPI for show detail of Rest endpoint
2024
- decoupling layer
2125
- controller, service and repository layer for easy extend
2226
- flexible search
@@ -27,6 +31,7 @@ this project, implement instance of basic feature, <br> you maybe want use for A
2731
1 - check active profile on dev <br>
2832
2 - run postgre sql on 5432 and create database myapp <br>
2933
3 - run app <br>
34+
4 - app.generator.enabled properties set to true, when you want to generate fake data <br>
3035

3136
### Run as docker image: <br>
3237
1 - check active profile on docker and package project <br>
@@ -53,4 +58,10 @@ this project, implement instance of basic feature, <br> you maybe want use for A
5358
1 - create your own search model <br>
5459
2 - use pagination for search <br>
5560
3 - create query dynamic base on search request <br>
56-
4 - use order and direction for sort data <br>
61+
4 - use order and direction for sort data <br>
62+
63+
### test feature
64+
1 - generate sample data baseOn model with javaFaker <br>
65+
2 - Spock framework use for test <br>
66+
3 - sample test define in test directory with groovy language <br>
67+
4 - Swagger Api for show details of endpoints <br>

pom.xml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</parent>
1111
<groupId>ir.bigz</groupId>
1212
<artifactId>springboot-real</artifactId>
13-
<version>0.0.4</version>
13+
<version>0.1.5</version>
1414
<name>basicFeaturesForSpringProject</name>
1515
<description>Demo project for use Spring Boot in project</description>
1616

@@ -153,6 +153,19 @@
153153
<version>3.0.8</version>
154154
</dependency>
155155

156+
<!-- swagger-UI -->
157+
<dependency>
158+
<groupId>org.springdoc</groupId>
159+
<artifactId>springdoc-openapi-ui</artifactId>
160+
<version>1.5.10</version>
161+
</dependency>
162+
163+
<dependency>
164+
<groupId>org.springdoc</groupId>
165+
<artifactId>springdoc-openapi-webmvc-core</artifactId>
166+
<version>1.5.10</version>
167+
</dependency>
168+
156169
<dependency>
157170
<groupId>org.springframework.boot</groupId>
158171
<artifactId>spring-boot-starter-test</artifactId>

src/main/java/ir/bigz/springbootreal/SpringbootRealApplication.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
package ir.bigz.springbootreal;
22

3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.beans.factory.annotation.Value;
37
import org.springframework.boot.SpringApplication;
48
import org.springframework.boot.autoconfigure.SpringBootApplication;
59
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
610
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
711
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
12+
import org.springframework.context.annotation.Bean;
813
import org.springframework.transaction.annotation.EnableTransactionManagement;
914

15+
import io.swagger.v3.oas.models.OpenAPI;
16+
import io.swagger.v3.oas.models.info.Info;
17+
import io.swagger.v3.oas.models.info.License;
18+
1019
@SpringBootApplication(exclude = {
1120
DataSourceAutoConfiguration.class,
1221
HibernateJpaAutoConfiguration.class,
@@ -18,4 +27,20 @@ public static void main(String[] args) {
1827
SpringApplication.run(SpringbootRealApplication.class, args);
1928
}
2029

30+
@Autowired
31+
ObjectMapper mapper;
32+
33+
@Bean
34+
public OpenAPI customOpenAPI(@Value("${application-description}") String appDesciption, @Value("${application-version}") String appVersion) {
35+
return new OpenAPI()
36+
.info(new Info()
37+
.title("Sample Application API")
38+
.version(appVersion)
39+
.description(appDesciption)
40+
.termsOfService("http://swagger.io/terms/")
41+
.license(new License().name("Apache 2.0").url("http://springdoc.org")));
42+
}
43+
44+
45+
2146
}

src/main/resources/application-dev.properties

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
################### Server Configuration ##########################
22
server.port=9090
33

4-
54
################### DataSource Configuration ##########################
65
demo.datasource.driver-class-name=org.postgresql.Driver
76
demo.datasource.url=jdbc:postgresql://localhost:5432/myapp
@@ -20,4 +19,11 @@ spring.datasource.hikari.connectionTimeout=20000
2019
spring.datasource.hikari.maximumPoolSize=5
2120

2221
################### condition Configuration ##########################
23-
app.generator.enabled=false
22+
app.generator.enabled=false
23+
24+
################### Application MetaData ##########################
25+
application-description=@project.description@
26+
application-version=@project.version@
27+
springdoc.swagger-ui.path=/swagger-ui.html
28+
springdoc.api-docs.path=/api-docs
29+
springdoc.use-fqn=true

0 commit comments

Comments
 (0)