Service Catalog provides a REST API for service discovery described below:
The fields for a Service object are described below:
idis the unique id of service
nameis the RFC6339 service name (e.g. _mqtt._tcp)
descriptionis the friendly name or description of a service
metais a hash-map with optional meta-information
apisis a map of API names and URLs
docsis an array of objects describing service documentations
decriptionis the description of the external document
apisis an array listing APIs documented in this documentation
urlis the URL to the external document
- type is the MIME type of the document (e.g.
application/openapi+json;version=2.0for OpenAPI specs v2.0)
ttlis the time after which the service should be removed from the catalog, unless if it is updated within the timeframe
createdis the RFC3339 time of service creation
updatedis the RFC3339 time in which the service was lastly updated
expiresis the RFC3339 time in which the service expires and is removed from the catalog (only if
The following diagram shows the data model of Service Catalog:
Service catalog also supports MQTT for service registration and de-registration.
Service registration is similar to POST and PUT methods of REST API. Here, a service uses a pre-configured topic (via config file) for publishing the message.
The will message of the registered service is used to de-register it from the cataog whenever the service disconnects.
API version is based on semver. The version is included as a parameter to the MIME type of all HTTP responses: