Specification

Clients can interact with the system via RESTful API.
JSON API specification is being used.

Key features:

  • N + 1 problem resolution by means of including related entities into the payload.
    Can be accessed via appropriate query value include={type} (e.g., ?include=participants)
  • Strict standard for data sorting, pagination, filtering.
  • Multiple error objects.

Routing

The system consists of many microservices enveloped by the client facing Gateway.
Each service has its own unique alias that is used to access the service-specific endpoints.
Aliases can be configured in the Gateway config file.

Example of services with aliased route:
https://gateway:8000/horizon/*
https://gateway:8000/storage/*
https://gateway:8000/auth/*
https://gateway:8000/notifications/*

Authentication

Each request is authenticated to each service via JWT. A token is represented by the base64 string stored in Authorization header with syntax Bearer {token}.

Authorization: Bearer yJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50X2lkIjoiR0JGS05MWUhLSEtXVTNOSTRVMkZJS0tCRkU3MkJIQUREWFFMV01UNUxLNFFIUDJKMlozRVJVR0giLCJhY2NvdW50X3R5cGUiOjUsInBsYXRmb3JtX2lkIjoiR0NNT0xFVVRVVDMyUTJLSVk0T1BVRUNERjZTTDNQSDRFTUJOTkVGSjMyUEdVR0g3WDZLTFZIWkMiLCJ0cnVzdGluZ19wbGF0Zm9ybXMiOlsiR0FLRURMUkhNN0dRUFVTUTNXVUVETEk0R05aM1czMk41TjVWMktYVFVRN1BLRjNYTDVYVlFHWFEiXSwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJwaG9uZV92ZXJpZmllZCI6ZmFsc2UsImV4cCI6MTU1MzY5NjgzMn0.020-cZbsXD0FtOXYAp_x-4ikkn5X1GbASi9Kb_mAWyW3COP9L1GPVm_AVe1yd97SSKkLBnzFze9D4OC49w9t1g

Pagination

Api index endpoints provide cursor-based pagination (unless opposite is explicitly stated).

  • page[cursor] - cursor
  • page[limit] - maximum number of items to return (default: 10)

results matching ""

    No results matching ""