Page tree
Skip to end of metadata
Go to start of metadata

Overview

Service Catalog provides a REST API for service discovery described below:


The fields for a Service object are described below:

  • id is the unique id of service
  • name is the RFC6339 service name (e.g. _mqtt._tcp)
  • description is the friendly name or description of a service
  • meta is a hash-map with optional meta-information
  • apis is a map of API names and URLs
  • docs is an array of objects describing service documentations
    • decription is the description of the external document
    • apis is an array listing APIs documented in this documentation
    • url is the URL to the external document
    • type is the MIME type of the document (e.g. plain/text for wikis, application/openapi+json;version=2.0 for OpenAPI specs v2.0)
  • ttl is the time after which the service should be removed from the catalog, unless if it is updated within the timeframe
  • created is the RFC3339 time of service creation
  • updated is the RFC3339 time in which the service was lastly updated
  • expires is the RFC3339 time in which the service expires and is removed from the catalog (only if TTL is set)

The following diagram shows the data model of Service Catalog:

MQTT API

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.

Versioning

API version is based on semver. The version is included as a parameter to the MIME type of all HTTP responses:

application/json;version=X.X.X
  • No labels