A non-transitory computer-readable medium having instructions stored thereon which, when executed by a processor, performs an operation for generating an application programming interface (API) for a plurality of associated services, the operation comprising:
- retrieving a declarative schema for a service of a plurality of services in an API;
- generating, from a data object definition in the declarative schema associated with the service, a language object for the service, wherein:
- the language object is configured to handle data events generated by the service, and
- the data object definition comprises references to data objects implemented by one or more of the associated services;
- generating, from a service definition in the declarative schema associated with the respective service, a service controller for the service, wherein the service controller is fronted by a gateway for external sources to invoke one or more functions implemented by the service;
- and
- exposing an API for the service independently of details of APIs for the associated services to one or more external services.