diff --git a/pom.xml b/pom.xml
index 37b0579ee..6f5df06cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
io.americanexpress.synapse
synapse
pom
- 0.4.11-SNAPSHOT
+ 0.4.13-SNAPSHOT
Synapse is a set of lightweight foundational framework modules for rapid development built-in with enterprise
diff --git a/service/synapse-service-reactive-rest/src/main/java/io/americanexpress/synapse/service/reactive/rest/controller/BaseGetMonoReactiveController.java b/service/synapse-service-reactive-rest/src/main/java/io/americanexpress/synapse/service/reactive/rest/controller/BaseGetMonoReactiveController.java
index 8a443a2f3..ded0342b4 100644
--- a/service/synapse-service-reactive-rest/src/main/java/io/americanexpress/synapse/service/reactive/rest/controller/BaseGetMonoReactiveController.java
+++ b/service/synapse-service-reactive-rest/src/main/java/io/americanexpress/synapse/service/reactive/rest/controller/BaseGetMonoReactiveController.java
@@ -61,4 +61,32 @@ public Mono> read(@RequestHeader HttpHeaders headers, @PathVar
logger.exit(responseEntity);
return responseEntity;
}
+
+
+ /**
+ * Get a single resource from the back end service.
+ *
+ * @param headers the headers
+ * @return response
+ */
+ @Operation(summary = "Reactive get mono", description = "Get resources reactively")
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "Ok"),
+ @ApiResponse(responseCode = "204", description = "No Content"),
+ @ApiResponse(responseCode = "400", description = "Bad Request"),
+ @ApiResponse(responseCode = "401", description = "Unauthorized"),
+ @ApiResponse(responseCode = "403", description = "Forbidden"),
+ })
+ @GetMapping("/")
+ public Mono> read(@RequestHeader HttpHeaders headers) {
+ logger.entry(headers);
+
+ var serviceResponse = service.read(headers);
+ var responseEntity = serviceResponse
+ .map(ResponseEntity::ok)
+ .defaultIfEmpty(ResponseEntity.noContent().build());
+
+ logger.exit(responseEntity);
+ return responseEntity;
+ }
}
diff --git a/service/synapse-service-reactive-rest/src/main/java/io/americanexpress/synapse/service/reactive/rest/service/BaseGetMonoReactiveService.java b/service/synapse-service-reactive-rest/src/main/java/io/americanexpress/synapse/service/reactive/rest/service/BaseGetMonoReactiveService.java
index b6947188b..85b4b7ffc 100644
--- a/service/synapse-service-reactive-rest/src/main/java/io/americanexpress/synapse/service/reactive/rest/service/BaseGetMonoReactiveService.java
+++ b/service/synapse-service-reactive-rest/src/main/java/io/americanexpress/synapse/service/reactive/rest/service/BaseGetMonoReactiveService.java
@@ -23,6 +23,28 @@
*/
public abstract class BaseGetMonoReactiveService extends BaseService {
+
+ /**
+ * Retrieves one resource.
+ *
+ * @param headers headers
+ * @return a mono read response
+ */
+ public Mono read(HttpHeaders headers) {
+ logger.entry(headers);
+ final var response = executeRead(headers);
+ logger.exit();
+ return response;
+ }
+
+ /**
+ * Prototype for reading a resource.
+ *
+ * @param headers headers
+ * @return a mono read response
+ */
+ protected abstract Mono executeRead(HttpHeaders headers);
+
/**
* Retrieves one resource.
*
diff --git a/service/synapse-service-rest/src/main/java/io/americanexpress/synapse/service/rest/controller/BaseGetMonoController.java b/service/synapse-service-rest/src/main/java/io/americanexpress/synapse/service/rest/controller/BaseGetMonoController.java
index 71b691100..2457edf6e 100644
--- a/service/synapse-service-rest/src/main/java/io/americanexpress/synapse/service/rest/controller/BaseGetMonoController.java
+++ b/service/synapse-service-rest/src/main/java/io/americanexpress/synapse/service/rest/controller/BaseGetMonoController.java
@@ -33,6 +33,24 @@
*/
public class BaseGetMonoController> extends BaseController {
+
+ /**
+ * Read response entity.
+ *
+ * @param headers containing the HTTP headers from the consumer
+ * @return the response entity
+ */
+ @Operation(summary = "Read operation.", description = "Read resources.")
+ @GetMapping("/")
+ public ResponseEntity read(@RequestHeader HttpHeaders headers) {
+ logger.entry(headers);
+
+ final O response = service.read(headers);
+ ResponseEntity responseEntity = MonoResponseEntityCreator.create(response);
+
+ logger.exit(responseEntity);
+ return responseEntity;
+ }
/**
* Read response entity.
*
diff --git a/service/synapse-service-rest/src/main/java/io/americanexpress/synapse/service/rest/service/BaseGetMonoService.java b/service/synapse-service-rest/src/main/java/io/americanexpress/synapse/service/rest/service/BaseGetMonoService.java
index 452c8db06..5ac473e91 100644
--- a/service/synapse-service-rest/src/main/java/io/americanexpress/synapse/service/rest/service/BaseGetMonoService.java
+++ b/service/synapse-service-rest/src/main/java/io/americanexpress/synapse/service/rest/service/BaseGetMonoService.java
@@ -22,6 +22,31 @@
*/
public abstract class BaseGetMonoService extends BaseService {
+
+ /**
+ * Gets a single resource.
+ *
+ * @param headers received from the controller
+ */
+ public O read(HttpHeaders headers) {
+
+ logger.entry(headers);
+
+ O response = executeRead(headers);
+
+ logger.exit(response);
+
+ return response;
+ }
+
+ /**
+ * Prototype for reading a resource.
+ * @param headers
+ * @return
+ */
+ protected abstract O executeRead(HttpHeaders headers);
+
+
/**
* Gets a single resource.
*