As you read through the topics on developing ABL services, you'll find the terms service, service interface, and API used often. Let's put these terms in context.

You can think of a service as consisting of two layers:
  • An API layer that exposes a set of URIs that client applications can call.
  • A service interface layer, bound to the URIs, that handles client requests and transforms them (if required) so that the underlying business logic layer can process them. For example, a web handler is a service interface that transforms HTTP requests into ABL objects.

A service provides an API via a specific communication protocol. For example, a REST service may expose an API over HTTP.

Together, the API and the service interface provide a level of abstraction over the business logic layer, so that changes to the business logic layer do not require changes to the client application code.