Glossary
This AEP defines common terminology.
Guidance
The following terminology must be used consistently throughout AEPs.
API
Application Programming Interface. This can be a local interface (such as an SDK) or a Network API (defined below).
APIs define one or more operations upon resource types.
API Backend
A set of servers and related infrastructure that implements the business logic for an API Service.
API Client
An API Client is a program or library that perform a specific tasks by calling an API or generic tools, such as CLIs, that expose the API in a user-accessible fashion or operate on resource data at rest.
Examples of clients include the following:
- Command line interfaces
- Libraries, such as an SDK for a particular programming language
- Scripts that operates on a JSON representation of a resource after reading it from an API
- Tools, such as a [Declarative client][]
- Visual UIs, such as a web application
API Definition
A well-structured representation of an API.
API Endpoint
Refers to a network address that an API uses to handle incoming requests. One
API may have multiple endpoints, such as https://pubsub.example.com
and
https://content-pubsub.example.com
.
API Gateway
One or more services that together provide common functionality across API services, such as load balancing and authentication.
API Method
An individual operation within an API. It is typically represented in Protocol
Buffers by an rpc
definition, or in HTTP via a method
and a path
.
API Name
The name by which to refer to an API.
API Request
A single invocation of an API Method. It is often used as the unit for billing, logging, monitoring, and rate limiting.
API Resource
An entity upon which one or more methods can operate.
API Resource Type
The type of a API resource. It is globally unique within an API.
API Service
An implementation of an API, exposing API methods on one or more network addresses.
Consumer
Either a programmatic client or a user that consumes an API. This term should be used when a statement refers broadly to both programs and users.
Declarative Clients
Declarative Clients, also known as Infrastructure as Code (IaC), describes a category of clients that consumes a markup language or code that represents resources exposed by an API, and executes the appropriate imperative actions to drive the resource to that desired state. To determine what changes to make and if a set of updates was successful a declarative client compares server side resource attributes with client defined values. The comparison feature ensures accuracy of a creation or an update but it requires services to treat the client set fields as read-only and diligently preserve those values.
Examples of complexities that declarative clients abstract away include:
- Determing the appropriate imperative action (create / update / delete) to achieve desired state.
- Ordering of these imperative actions.
Terraform is an example of such a client.
Schema
A schema describes the structure of the request or response of an API method, or a resource. It refers both to an OpenAPI schema as well as a protobuf message.
User
A human being which is using an API directly, such as with cURL. This term is defined to differentiate usage in the AIPs between a human user and a programmatic client.
Network API
An API that operates across a network of computers. Network APIs communicate using network protocols including HTTP, and are frequently produced by organizations separate from those that consume them.