Dynamic Fields APIs

This section details about the REST services for Dynamic fields.

MOSIP consists of various types of master data like, gender, location, individual type as part of its pre-defined schema. Now if a MOSIP adopter wants to add more master data for its UI screens, they can choose to use our dynamic fields APIs which are designed to support master data in JSON format in a single table.

Our implementation for dynamic field allows MOSIP adopters to store ina key value pair in single/multiple languages. Below is an example of Blood Group in english.

[
{
"code": "101",
"value": "A",
"langCode": "eng",
"active": true
},
{
"code": "102",
"value": "A+",
"langCode": "eng",
"active": true
},
{
"code": "103",
"value": "A-",
"langCode": "eng",
"active": true
},
{
"code": "104",
"value": "B",
"langCode": "eng",
"active": true
},
{
"code": "105",
"value": "B+",
"langCode": "eng",
"active": true
},
{
"code": "106",
"value": "B-",
"langCode": "eng",
"active": true
},
{
"code": "107",
"value": "AB",
"langCode": "eng",
"active": true
},
{
"code": "108",
"value": "AB+",
"langCode": "eng",
"active": true
},
{
"code": "109",
"value": "AB-",
"langCode": "eng",
"active": true
},
{
"code": "110",
"value": "O",
"langCode": "eng",
"active": true
},
{
"code": "111",
"value": "O+",
"langCode": "eng",
"active": true
},
{
"code": "112",
"value": "O-",
"langCode": "eng",
"active": true
},
{
"code": "113",
"value": "Don't Know",
"langCode": "eng",
"active": true
},
{
"code": "114",
"value": "Not Applicable",
"langCode": "eng",
"active": true
}
]

Create Dynamic Field

This API is used to create a dynamic field.

Resource URL

POST https://{base_url}/v1/masterdata/dynamicfields

Resource Details

Resource Details

Description

Response format

JSON

Requires Authentication

Yes

Request Body Parameters

Name

Required

Description

Default Value

Example

id

yes

ID of the API

mosip.dynamicfield.create

version

yes

version of the API

v1

metadata

no

any meta information for the API

requesttime

yes

timestamp of the request

2019-12-11T06:12:25.288Z

request

yes

request body attributes

request.active

yes

enable or disable the field

true or false

request.dataType

yes

data type of the field value

string or integer

request.description

yes

description of the field

request.fieldVal

yes

list of field values

request.fieldVal.active

yes

the field is active or not

true or false

request.fieldVal.code

yes

the language code for the value

eng or ara or fra

request.fieldVal.value

yes

the value to be stored

request.langCode

yes

the language code for the field name

request.name

yes

the name of the field

Request

{
"id": "string",
"metadata": {},
"request": {
"active": true,
"dataType": "string",
"description": "string",
"fieldVal": [
{
"active": true,
"code": "string",
"langCode": "string",
"value": "string"
}
],
"langCode": "eng",
"name": "any name"
},
"requesttime": "2018-12-10T06:12:52.994Z",
"version": "string"
}

Response

{
"errors": [
{
"errorCode": "string",
"message": "string"
}
],
"id": "string",
"metadata": {},
"response": {
"active": true,
"createdBy": "string",
"createdOn": "2020-08-10T18:43:46.767Z",
"dataType": "string",
"description": "string",
"fieldVal": [
{
"active": true,
"code": "string",
"langCode": "string",
"value": "string"
}
],
"id": "string",
"langCode": "string",
"name": "string",
"updatedBy": "string",
"updatedOn": "2020-08-10T18:43:46.767Z"
},
"responsetime": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"version": "string"
}

Update Dynamic Field

This API is used to update a dynamic field schema completely.

Resource Details

Resource Details

Description

Response format

JSON

Requires Authentication

Yes

Request Body Parameters

Name

Required

Description

Default Value

Example

id

yes

ID of the API

mosip.dynamicfield.create

version

yes

version of the API

v1

metadata

no

any meta information for the API

requesttime

yes

timestamp of the request

2019-12-11T06:12:25.288Z

request

yes

request body attributes

request.active

yes

enable or disable the field

true or false

request.dataType

yes

data type of the field value

string or integer

request.description

yes

description of the field

request.fieldVal

yes

list of field values

request.fieldVal.active

yes

the field is active or not

true or false

request.fieldVal.code

yes

the language code for the value

eng or ara or fra

request.fieldVal.value

yes

the value to be stored

request.langCode

yes

the language code for the field name

request.name

yes

the name of the field

Resource URL

PUT https://{base_url}/v1/masterdata/dynamicfields?id={id value}

Request

{
"id": "string",
"metadata": {},
"request": {
"active": true,
"dataType": "string",
"description": "string",
"fieldVal": [
{
"active": true,
"code": "string",
"langCode": "string",
"value": "string"
}
],
"langCode": "eng",
"name": "any name"
},
"requesttime": "2018-12-10T06:12:52.994Z",
"version": "string"
}

Response

{
"errors": [
{
"errorCode": "string",
"message": "string"
}
],
"id": "string",
"metadata": {},
"response": {
"active": true,
"createdBy": "string",
"createdOn": "2020-08-10T18:54:17.240Z",
"dataType": "string",
"description": "string",
"fieldVal": [
{
"active": true,
"code": "string",
"langCode": "string",
"value": "string"
}
],
"id": "string",
"langCode": "string",
"name": "string",
"updatedBy": "string",
"updatedOn": "2020-08-10T18:54:17.240Z"
},
"responsetime": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"version": "string"
}

Update Dynamic Field value

This API is used to update a dynamic field value.

Resource URL

PUT https://dev.mosip.net/v1/masterdata/dynamicfields/values?id={id value}

Resource Details

Resource Details

Description

Response format

JSON

Requires Authentication

Yes

Request Body Parameters

Name

Required

Description

Default Value

Example

id

yes

ID of the API

mosip.dynamicfield.create

version

yes

version of the API

v1

metadata

no

any meta information for the API

requesttime

yes

timestamp of the request

2019-12-11T06:12:25.288Z

request

yes

request body attributes

request.active

yes

the field is active or not

true or false

request.code

yes

the language code for the value

eng or ara or fra

request.value

yes

the value to be stored

request.langCode

yes

the language code for the field name

Request

{
"id": "string",
"metadata": {},
"request": {
"active": true,
"code": "string",
"langCode": "string",
"value": "string"
},
"requesttime": "2018-12-10T06:12:52.994Z",
"version": "string"
}

Response

{
"errors": [
{
"errorCode": "string",
"message": "string"
}
],
"id": "string",
"metadata": {},
"response": "string",
"responsetime": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"version": "string"
}

Get Dynamic Field

This API is used to fetch dynamic fields using pagination.

Request URL

GET https://dev.mosip.net/v1/masterdata/dynamicfields?orderBy={desc or asc}&pageNumber={page number}&pageSize={page size}&sortBy={field name to sort}

Resource Details

Resource Details

Description

Response format

JSON

Requires Authentication

Yes

Request Body Parameters

NA

Request

NA

Response

{
"errors": [
{
"errorCode": "string",
"message": "string"
}
],
"id": "string",
"metadata": {},
"response": {
"data": [
{
"active": true,
"createdBy": "string",
"createdOn": "2020-08-10T19:05:52.427Z",
"dataType": "string",
"description": "string",
"fieldVal": [
{
"active": true,
"code": "string",
"langCode": "string",
"value": "string"
}
],
"id": "string",
"langCode": "string",
"name": "string",
"updatedBy": "string",
"updatedOn": "2020-08-10T19:05:52.427Z"
}
],
"pageNo": 0,
"totalItems": 0,
"totalPages": 0
},
"responsetime": "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"version": "string"
}