Skip to content

Commit 605efae

Browse files
committed
update for openapi spec
1 parent f2a4137 commit 605efae

File tree

4 files changed

+42
-63
lines changed

4 files changed

+42
-63
lines changed

src.iml

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.6" level="project" />
3030
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.6" level="project" />
3131
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.6" level="project" />
32+
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.6" level="project" />
33+
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.6" level="project" />
3234
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.6" level="project" />
3335
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.5" level="project" />
3436
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.5" level="project" />
@@ -42,6 +44,8 @@
4244
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
4345
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project" />
4446
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.5" level="project" />
47+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.4" level="project" />
48+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
4549
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.4" level="project" />
4650
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.4" level="project" />
4751
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" />
@@ -51,11 +55,6 @@
5155
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.45" level="project" />
5256
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.6" level="project" />
5357
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.6" level="project" />
54-
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.4.5" level="project" />
55-
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.6" level="project" />
56-
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:5.4.6" level="project" />
57-
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:5.4.6" level="project" />
58-
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:5.4.6" level="project" />
5958
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.4.5" level="project" />
6059
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.4.5" level="project" />
6160
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.4.5" level="project" />
@@ -76,33 +75,6 @@
7675
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
7776
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.3.6" level="project" />
7877
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.7.0" level="project" />
79-
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-webflux:2.4.5" level="project" />
80-
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-reactor-netty:2.4.5" level="project" />
81-
<orderEntry type="library" name="Maven: io.projectreactor.netty:reactor-netty-http:1.0.6" level="project" />
82-
<orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.63.Final" level="project" />
83-
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.63.Final" level="project" />
84-
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.63.Final" level="project" />
85-
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.63.Final" level="project" />
86-
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.63.Final" level="project" />
87-
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.63.Final" level="project" />
88-
<orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.63.Final" level="project" />
89-
<orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.63.Final" level="project" />
90-
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.63.Final" level="project" />
91-
<orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.63.Final" level="project" />
92-
<orderEntry type="library" name="Maven: io.netty:netty-resolver-dns-native-macos:osx-x86_64:4.1.63.Final" level="project" />
93-
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.63.Final" level="project" />
94-
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:linux-x86_64:4.1.63.Final" level="project" />
95-
<orderEntry type="library" name="Maven: io.projectreactor.netty:reactor-netty-core:1.0.6" level="project" />
96-
<orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.63.Final" level="project" />
97-
<orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.63.Final" level="project" />
98-
<orderEntry type="library" name="Maven: org.springframework:spring-webflux:5.3.6" level="project" />
99-
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.4.5" level="project" />
100-
<orderEntry type="library" name="Maven: org.springframework.vault:spring-vault-core:2.2.3.RELEASE" level="project" />
101-
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.6" level="project" />
102-
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.4" level="project" />
103-
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
104-
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
105-
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:2.4.5" level="project" />
10678
<orderEntry type="library" name="Maven: io.springfox:springfox-boot-starter:3.0.0" level="project" />
10779
<orderEntry type="library" name="Maven: io.springfox:springfox-oas:3.0.0" level="project" />
10880
<orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations:2.1.2" level="project" />
@@ -124,10 +96,13 @@
12496
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-webflux:3.0.0" level="project" />
12597
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
12698
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
99+
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
127100
<orderEntry type="library" scope="RUNTIME" name="Maven: org.mapstruct:mapstruct:1.3.1.Final" level="project" />
128101
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:3.0.0" level="project" />
129102
<orderEntry type="library" name="Maven: com.couchbase.client:java-client:3.1.5" level="project" />
130103
<orderEntry type="library" name="Maven: com.couchbase.client:core-io:2.1.5" level="project" />
104+
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.4.5" level="project" />
105+
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
131106
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.1" level="project" />
132107
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.1" level="project" />
133108
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
@@ -139,8 +114,5 @@
139114
<orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.7.1" level="project" />
140115
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
141116
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.7.1" level="project" />
142-
<orderEntry type="library" scope="TEST" name="Maven: io.reactivex:rxjava-reactive-streams:1.2.1" level="project" />
143-
<orderEntry type="library" scope="TEST" name="Maven: io.reactivex:rxjava:1.3.8" level="project" />
144-
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
145117
</component>
146118
</module>

src/main/java/org/couchbase/quickstart/controllers/ProfileController.java

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import java.util.UUID;
2424

2525
@RestController
26-
@RequestMapping("/api/v1/profiles")
26+
@RequestMapping("/api/v1/profile")
2727
public class ProfileController {
2828

2929
private Cluster cluster;
@@ -37,11 +37,9 @@ public ProfileController(Cluster cluster, Bucket bucket) {
3737

3838
@CrossOrigin(value="*")
3939
@PostMapping(path = "/", produces = MediaType.APPLICATION_JSON_VALUE)
40-
@ApiOperation(value = "Post User Profile")
40+
@ApiOperation(value = "Create a user profile from the request")
4141
@ApiResponses({
4242
@ApiResponse(code = 201, message = "Created", response = Profile.class),
43-
@ApiResponse(code = 401, message = "Unauthorized", response = Error.class),
44-
@ApiResponse(code = 404, message = "Not Found", response = Error.class),
4543
@ApiResponse(code = 500, message = "Internal Server Error", response = Error.class)
4644
})
4745
public ResponseEntity<Profile> save(@RequestBody final Profile userProfile) {
@@ -53,21 +51,21 @@ public ResponseEntity<Profile> save(@RequestBody final Profile userProfile) {
5351

5452

5553
@CrossOrigin(value="*")
56-
@GetMapping(path = "/", produces = MediaType.APPLICATION_JSON_VALUE)
57-
@ApiOperation(value = "Search for User Profiles", produces = MediaType.APPLICATION_JSON_VALUE)
54+
@GetMapping(path = "/profiles/", produces = MediaType.APPLICATION_JSON_VALUE)
55+
@ApiOperation(value = "Search for user profiles", produces = MediaType.APPLICATION_JSON_VALUE)
5856
@ApiResponses(
5957
value = {
60-
@ApiResponse(code = 200, message = "OK"),
58+
@ApiResponse(code = 200, message = "Returns the list of user profiles"),
6159
@ApiResponse(code = 500, message = "Error occurred in getting user profiles", response = Error.class)
6260
})
6361
public ResponseEntity<List<Profile>> getProfiles(
6462
@RequestParam(required=false, defaultValue = "5") int limit,
6563
@RequestParam(required=false, defaultValue = "0") int skip,
66-
@RequestParam String searchFirstName) {
64+
@RequestParam String search) {
6765

68-
final List<Profile> profiles = cluster.query("SELECT p.* FROM user_profile._default.profile p WHERE lower(p.firstName) LIKE $firstName LIMIT $limit OFFSET $skip",
66+
final List<Profile> profiles = cluster.query("SELECT p.* FROM user_profile._default.profile p WHERE lower(p.firstName) LIKE $search OR lower(p.lastName) LIKE $search LIMIT $limit OFFSET $skip",
6967
queryOptions().parameters(JsonObject.create()
70-
.put("firstName", "%"+searchFirstName.toLowerCase()+"%")
68+
.put("search", "%"+ search.toLowerCase()+"%")
7169
.put("limit", limit)
7270
.put("skip", skip))
7371
.scanConsistency(QueryScanConsistency.REQUEST_PLUS))
@@ -77,7 +75,7 @@ public ResponseEntity<List<Profile>> getProfiles(
7775

7876
@CrossOrigin(value="*")
7977
@GetMapping(path = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
80-
@ApiOperation(value = "Get a User Profile", produces = MediaType.APPLICATION_JSON_VALUE)
78+
@ApiOperation(value = "Get a user profile by Id", produces = MediaType.APPLICATION_JSON_VALUE)
8179
@ApiResponses(
8280
value = {
8381
@ApiResponse(code = 200, message = "OK"),
@@ -91,12 +89,11 @@ public ResponseEntity<Profile> getProfile(@RequestParam String pid) {
9189

9290
@CrossOrigin(value="*")
9391
@PutMapping(path = "/{id}")
94-
@ApiOperation(value = "Modify a Users Profile", response = Profile.class)
92+
@ApiOperation(value = "Update a user profile", response = Profile.class)
9593
@ApiResponses({
96-
@ApiResponse(code = 200, message = "OK", response = Profile.class),
97-
@ApiResponse(code = 401, message = "Unauthorized", response = Error.class),
98-
@ApiResponse(code = 404, message = "Not Found", response = Error.class),
99-
@ApiResponse(code = 500, message = "Internal Server Error", response = Error.class)
94+
@ApiResponse(code = 200, message = "Updated the user profile", response = Profile.class),
95+
@ApiResponse(code = 404, message = "user profile not found", response = Error.class),
96+
@ApiResponse(code = 500, message = "returns internal server error", response = Error.class)
10097
})
10198
public ResponseEntity<Profile> update( @PathVariable("id") String id, @RequestBody Profile profile) {
10299

target/classes/public/index.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<html>
2+
<head>
3+
<title>Couchbase & Java Getting Started</title>
4+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
5+
</head>
6+
<!-- We use the windoe.location because the preview browser on gitpod can't handle forward correctly -->
7+
<body onload="window.location = '/swagger-ui/'">
8+
<a href="/swagger-ui/">Click here to see the API</a>
9+
</body>
10+
</html>
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/configs/DBProperties.java
2-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/models/ProfileList.java
3-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/configs/CouchbaseConfig.java
4-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/configs/CollectionNames.java
5-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/configs/Swagger.java
6-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/controllers/ProfileController.java
7-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/Application.java
8-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/runners/DBSetupRunner.java
9-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/controllers/IndexController.java
10-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/controllers/HealthCheckController.java
11-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/models/ProfileResult.java
12-
/Users/denisrosa/Documents/Projects/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/models/Profile.java
1+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/configs/Swagger.java
2+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/controllers/ProfileController.java
3+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/models/ProfileResult.java
4+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/configs/DBProperties.java
5+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/configs/CollectionNames.java
6+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/configs/CouchbaseConfig.java
7+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/models/Profile.java
8+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/Application.java
9+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/runners/DBSetupRunner.java
10+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/models/ProfileList.java
11+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/controllers/HealthCheckController.java
12+
/Users/lebeaaa/Code/couchbase/java-springboot-quickstart/src/main/java/org/couchbase/quickstart/controllers/IndexController.java

0 commit comments

Comments
 (0)