REST APIs Customize
Low-Code Customize & Extend - REST APIs
tip
For corresponding details, Please refer to Resources page for locating Videos & Tutorials Learn, Videos, Tutorials
Backend (BE): Low-Code Customize & Extend
This section contains guides to low-code customize REST APIs.
REST Low-Code Customize
- Implement DataMesh with data from repository or other endpoints REST, GraphQL.
Customize - How Tos ?
Implement Data Federation | Data Mesh
Create Data Federation | Data Mesh with any custom combination, for all of your data.
Provide a unified REST API endpoint that includes data from any of:
- A. REST API function in project
- B. Any other REST API endpoint
A default DataMesh Query is provided in generated code. That can be easily customized further. Tip: Get code block to fetch REST endpoint from respective auto-generated REST controller.
See Code Example
 // Data Mesh Sample Code: Combine / Fetch the data from other REST sources 
 
/* 
     Code-Help [CH] : Enable DataMesh Sample by steps below - 
                      1-Uncomment Imports Required For Data Mesh  
                      2-Uncomment Function Below  
*/ 
 
/* 
// -------------------- DataMesh ------------------------- 
 
@GetMapping("erp_product/DataMesh")  
public ResponseEntity<List<ErpproductTblRec>> ErpproductTblRecDataMesh()  
    throws Exception 
    {   
    try { 
    List<ErpproductTblRec> ErpproductTblRecList = new ArrayList<ErpproductTblRec>(); 
 
        ErpproductTblRec1Repository.findAll().forEach(ErpproductTblRecList::add); 
 
                System.out.println("Data Mesh Source #1 Record Count: "+ErpproductTblRecList.size()); 
 
                // ---- Combine Data With ---------------------------------------------------- 
                // Get data from REST API call (sample shows getting data from same table ViewAll API call) 
                //---------------------------------------------------------------------------- 
                String get_data_rest_url = "http://127.0.0.1:9080/emdbrest/erp_product/ViewAll?pageNo=-1"; //-1 == Unpaginated 
                WebClient webClientRest = WebClient.builder().baseUrl(get_data_rest_url) 
                .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).build(); 
 
                Mono<List<ErpproductTblRec>> responseRest = 
                webClientRest.get() 
                .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).retrieve() 
                .bodyToMono(new ParameterizedTypeReference<List<ErpproductTblRec>>() {}); 
 
                List<ErpproductTblRec> getMeshRestListErpproductTblRec = responseRest.block(); 
 
                System.out.println("Data Mesh Source #2 Record Count: "+getMeshRestListErpproductTblRec.size()); 
 
                getMeshRestListErpproductTblRec.forEach(ErpproductTblRecList::add); 
                //---------------------------------------------------------------------------- 
 
    if (ErpproductTblRecList.isEmpty()) { 
        return new ResponseEntity<>(HttpStatus.NO_CONTENT); 
    } 
 
    return new ResponseEntity<>(ErpproductTblRecList, HttpStatus.OK); 
    } catch (Exception e) { 
        System.out.println("Error: Exception:  "+e.getMessage()); 
        //e.printStackTrace(System.out); 
        return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR); 
    } 
} 
*/