Product Registry
Overview
The product service provides APIs to create products and product variants for HCM. This document provides the configuration details for setting up products and product variants.
Pre-requisites
Knowledge of Java/J2EE (preferably Java 8 version).
Knowledge of spring boot and spring-boot micro-services.
Knowledge of Git or any version control system.
Knowledge of RESTful web services.
Knowledge of the Lombok library is helpful.
Knowledge of eGov-mdms service, eGov-persister, eGov-idgen, eGov-indexer, and eGov-user will be helpful.
Functionalities
Provides APIs to create, update, and search products.
Provides APIs to create, update, and search product variants.
Setup details
The source code for a Product is present in the health-campaign-services Git repo. The spring boot application needs the Lombok* extension added to the IDE to load it. Once the application is up and running, the API requests can be posted to the URL and the IDs can be generated.
*In the case of IntelliJ, the plugin can be installed directly. For eclipse, the Lombok jar location has to be added in the eclipse.ini file in this format javaagent:lombok.jar.
API Details
Refer to the Swagger API for YAML file details: Product.yaml
Application.properties file information:
Kafka topics persister configs for eGov persister
product.kafka.create.topic=save-product-topic
product.kafka.update.topic=update-product-topic
product.variant.kafka.create.topic=save-product-variant-topic
product.variant.kafka.update.topic=update-product-variant-topic
URLs for the external API references:
eGvo mdms :-> egov.mdms.host = https://health-dev.digit.org/
eGov -idGen :-> egov.idgen.host = https://health-dev.digit.org/
eGov-User Service -> egov.user.host = https://health-dev.digit.org/
Configuration Details
Access MDMS configurations
Action test: URL actions adding
{
"id": 1536,
"name": "Product Variant Create",
"url": "/product/variant/v1/_create",
"displayName": "Product Variant Create",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1537,
"name": "Product Create",
"url": "/product/v1/_create",
"displayName": "Product Create",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1541,
"name": "Product Update",
"url": "/product/v1/_update",
"displayName": "Product Update",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1542,
"name": "Product Search",
"url": "/product/v1/_search",
"displayName": "Product Search",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1543,
"name": "Product Variant Update",
"url": "/product/variant/v1/_update",
"displayName": "Product Variant Update",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
{
"id": 1544,
"name": "Product Variant Search",
"url": "/product/variant/v1/_search",
"displayName": "Product Variant Search",
"orderNumber": 0,
"parentModule": "",
"enabled": false,
"serviceCode": "product",
"code": "null",
"path": ""
},
Access to role-based actions
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1536,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1537,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1541,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1542,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1543,
"actioncode": "",
"tenantId": "default"
},
{
"rolecode": "SYSTEM_ADMINISTRATOR",
"actionid": 1544,
"actioncode": "",
"tenantId": "default"
}
Persister configuration
Indexer configuration
Database schema
Postman collection
Was this helpful?