Service Board > Max for Developers > Appendix B: Max REST API > Retrieve Object Metadata via HTTP
Retrieve Object Metadata via HTTP
The following operation is available to retrieve information about objects:
https://sandbox.mydomain.io/<instance>/metadata
By default, information is retrieved for every object in the system. To reduce processing overhead, you can avoid resending unmodified information in subsequent calls by using the io_id parameter to get information about just one object, as follows:
GET https://<server>/<instance>/metadata?io_id=io_showcase
You can also use the fields parameter to specify a list of fields to retrieve for one or more objects.
Response Example
The response is a JSON map with all object metadata indexed by object full identifiers, for example:
{
"io_layout" : {
...
},
"io_spring_imap" : {
...
},
"io_spring_undirected_connector" : {
...
},
"io_application_log_type" : {
...
},
...
}
Object Definition Example
Object definitions contain information about objects followed by a list of fields with their associated information, and a list of relationships ordered by their sources and targets with their associated information. Each object definition looks similar to the following:
{
"systemCached" : false,
"uuid" : "294ae5eb-952b-467e-a2fc-d27751221d2a",
"datastoreType" : {
"uuid" : "dee48a74-7404-4180-a63d-cff832c4fcf3",
"fullIdentifier" : "sql"
},
"immutableRecords" : false,
"primaryNameField" : {
"datatype" : {
"dimension" : "0",
"displayFormat" : {},
"primitiveType" : {
"rubyType" : "String",
"databaseType" : "text",
"fullIdentifier" : "io_string",
"uuid" : "0646100d-5279-4c5b-84c2-af9e0cf6a58b",
"javascriptType" : "String",
"javaType" : "java.lang.String"
},
"uuid" : "ec4b5346-a29f-3cb5-a25c-26c6280af1da",
"fullIdentifier" : "io_string"
},
"immutable" : false,
"uuid" : "8b9f108c-a1a2-4623-955c-647cd5f978b1",
"calculated" : false,
"required" : true,
"fullIdentifier" : "io_name",
"orderingPosition" : "0",
"indexed": true,
"defaultValue" : null
},
"fullIdentifier" : "io_showcase",
"physicalDelete" : false,
"active" : true,
"accessControl" : true,
"changeLogs" : true,
"fields" : {
"io_search_filter_object_document" : {
},
"io_showcase_time" : {
},
"io_showcase_text" : {
},
"io_showcase_content_run_report" : {
},
},
"relationships" : {
"target" : {
"691caa2c-b21e-11e0-90ab-001ec93afa2c" : {
},
"0c144d6b-939d-47d6-b361-7b54674d4908" : {
},
"e849ee82-cbd5-4215-8fb6-d6177c14f10d" : {
},
},
"source" : {
"6b75625d-b32d-42a4-b2c8-a5400229ac3e" : {
},
"96570402-b187-4ec6-b94f-105c478cbc76" : {
},
"02f79833-c65a-416d-bbd2-b34322f44ec7" : {
},
}
}
}
Field Information Examples
Field Information
Field information includes the associated data type and dimension (array fields are supported), for example:
"io_description" : {
"required" : false,
"orderingPosition" : "21",
"datatype" : {
"fullIdentifier" : "io_text_localized",
"uuid" : "06ad5788-f8ad-4855-8f54-50af4096fd2c",
"displayFormat" : {},
"primitiveType" : {
"fullIdentifier" : "io_localized_string",
"javaType" : "java.lang.String",
"uuid" : "083f0caf-9cd0-469b-8297-0b95d860d11f",
"rubyType" : "String",
"databaseType" : "text",
"javascriptType" : "String"
},
"dimension" : "2"
},
"uuid" : "7d04de0d-af8b-4ec1-9261-b6d404fcf638",
"calculated" : false,
"fullIdentifier" : "io_description",
"immutable" : false,
"indexed": true,
"defaultValue" : null
Relationship Field Information
Relationship field information includes the associated UUIDs and full identifiers in the relationship field, for example:
"io_updated_by" : {
"required" : false,
"calculated" : false,
"defaultValue" : null,
"orderingPosition" : "20",
"relationship" : {
"fullIdentifier" : "io_showcase_updated_by",
"uuid" : "8c6cf79f-8459-4038-827b-3c37d78a567d"
},
"fullIdentifier" : "io_updated_by",
"immutable" : false,
"datatype" : {
"fullIdentifier" : "io_relationship",
"uuid" : "c4f8597a-fb73-3d5e-b8a7-531471152532",
"displayFormat" : {
"deleted" : {
"type" : "related",
"field" : "io_deleted",
"instance" : "$this",
"object" : "$target"
},
"name" : {
"object" : "$target",
"field" : "$primary_name",
"instance" : "$this",
"type" : "related"
},
"__object" : {
"type" : "related",
"field" : "$object",
"instance" : "$this",
"object" : "$target"
}
},
"primitiveType" : {
"javascriptType" : "String",
"javaType" : "java.util.UUID",
"rubyType" : "Java::JavaUtil::UUID",
"uuid" : "3da40ff7-175e-40b8-859d-5a71f9e5d7ba",
"fullIdentifier" : "io_uuid",
"databaseType" : "uuid"
},
"dimension" : "0"
},
"indexed": true,
"uuid" : "584b3176-1db6-4bd3-aa4a-2cf7de65838c"
},
Relationship Information Examples
Relationship information includes the associated relationship type, UUIDs and full identifiers of the relevant source and target objects, and the field used by the relationship, for example:
"294f54f3-440b-47d6-b81e-4556f959cb64" : {
"hasAllTargets" : false,
"type" : "master",
"source" : {
"fullIdentifier" : "io_showcase_detail",
"uuid" : "e8170ad5-0f5a-4518-baeb-76f0a9cb0de6"
},
"fullIdentifier" : "io_showcase_detail_showcase",
"field" : {
"fullIdentifier" : "io_showcase",
"uuid" : "f9728584-95f9-4c95-b030-000bcda820ea"
},
"dynamic" : false,
"targets" : [
{
"fullIdentifier" : "io_showcase",
"uuid" : "294ae5eb-952b-467e-a2fc-d27751221d2a"
}
]
},
In cases where a relationship can have any object as its target, it is inefficient to return a list of all objects in the system as target fields, so an empty array is returned, and hasAllTargets is set to true, for example:
"a649715a-ad23-11e0-9bbe-001ec93afa2c" : {
"dynamic" : true,
"targets" : [],
"field" : {
"uuid" : "cafc09b0-b366-11e0-9e9b-001ec93afa2c",
"fullIdentifier" : "io_related_to"
},
"source" : {
"fullIdentifier" : "io_event",
"uuid" : "34029fec-b949-3780-b9e6-9522413b9f2c"
},
"type" : "referential",
"hasAllTargets" : true,
"fullIdentifier" : "io_event_related_to"
},
Fields Parameter Example
In the fields parameter, you can specify a list of comma-separated field full identifiers to retrieve fields for a specified object. If not set, all fields of the specified object are retrieved. Following is an example of how to retrieve io_created_on and io_showcase_option_list for the Showcase object:
GET https://localhost:8080/<instance>/metadata?io_id=io_showcase&fields=io_created_on,io_showcase_option_list
Output Example
The output includes object metadata and a map of fields that contains metadata only for the specified fields:
{"accessControl": true,
"pluralName": "Showcases",
"physicalDelete": false,
"active": true,
.
.
.,

"fields": {
"io_created_on": {
"fullIdentifier": "io_created_on",
"immutable": false,
...},
"io_showcase_option_list": {
"fullIdentifier": "io_showcase_option_list",
"immutable": false,
...,
"options": [...],
...}
}
}
For more information:
Was this helpful?