Skip to content
ADP
API Design PrincipleBETA

[ADP-4] Glossary

This glossary records shared terms between ADPs and common API-related concepts. It is organized alphabetically for easy reference and is expected to grow over time.

Absolute URI

A URI that includes all the components necessary to locate a resource independently, such as the scheme, host, and path. An absolute URI can be used to directly access the resource on the web.

API (Application Programming Interface)

A set of definitions and protocols for building and integrating application software. APIs allow different software components to communicate and share data by providing a standardized way to access the functionality of a software component.

API Endpoint

A specific URL at which an API can be accessed by a client. Each endpoint corresponds to a specific functionality or resource in the API. For example: https://api.example.com/v1/users.

API Key

A unique identifier used to authenticate a user, developer, or calling program to an API. It's often used for projects that don't require a higher level of security.

API Mocking

The practice of simulating the behavior of a real API using fake data. It's useful for testing and development when the actual API is not available or to avoid hitting rate limits.

API Consumer (Client)

An application or system that uses an API to access resources or services provided by another application or system.

API Landscape

The overall ecosystem of APIs, including their types, usage patterns, and relationships among different APIs. It provides a comprehensive view of how APIs interact and integrate within various applications and services.

API Provider (Server)

An application or system that offers an API to other applications or systems, providing access to its resources or services.

Authentication

The process of verifying the identity of a user, device, or system attempting to access an API.

Authorization

The process of determining whether an authenticated user, device, or system has permission to access specific resources or perform certain actions within an API.

Collection

A group of resources of the same type that can be accessed and managed as a whole through an API. For example, a collection of user profiles or a collection of articles.

CORS (Cross-Origin Resource Sharing)

A security mechanism that allows a web page from one domain to make requests to a different domain. It's important for APIs that are accessed by web applications.

CURIE (Compact URI Reference)

A simplified URI notation that allows the use of short prefixes to reference full URIs. CURIE makes it more concise and easier to read when referencing resources in documents.

Event Consumer

A system or component that receives and processes events generated by an event producer.

Event Producer

A system or component that generates events to be consumed by event consumers. These events typically represent changes or updates within the system.

Extensible Enum

An enumeration type that can be extended with additional values beyond its initial set. This allows for greater flexibility and adaptability in software design.

GraphQL

A query language and runtime for APIs that allows clients to request exactly the data they need, making it possible to get many resources in a single request.

HAL (Hypertext Application Language)

A simple format that gives a consistent and easy way to hyperlink between resources in a RESTful API. HAL uses standard link relations and embedded resources.

HATEOAS (Hypermedia as the Engine of Application State)

A constraint of REST application architecture that allows the client to dynamically navigate the API using hypermedia links provided by the server.

IANA (Internet Assigned Numbers Authority)

An organization responsible for coordinating global internet systems, including managing IP addresses, domain names, and protocol parameters.

IEEE (Institute of Electrical and Electronics Engineers)

A professional association dedicated to advancing technology and standards in a wide range of technical fields, including computing and electronics.

JSON (JavaScript Object Notation)

A lightweight data-interchange format that is easy for humans to read and write and easy for machines to parse and generate. JSON is widely used in web APIs for data exchange.

JSON Pointer

A syntax for identifying a specific value within a JSON document. It uses a string syntax to define the path to the value, making it easy to reference and manipulate specific parts of a JSON structure.

JWT (JSON Web Token)

A compact, URL-safe means of representing claims to be transferred between two parties. JWTs are often used for authentication and authorization in web applications.

Microservices

An architectural style where an application is structured as a collection of loosely coupled services. Each service is typically accessed via its own API.

OAuth

An open standard for access delegation, commonly used for secure authorization in web and mobile applications.

OpenAPI

A specification for building APIs, providing a standard way to describe, produce, consume, and visualize RESTful web services. Formerly known as Swagger.

OIDC (OpenID Connect)

An authentication protocol based on OAuth 2.0 that allows clients to verify the identity of users and obtain basic profile information. OIDC provides a simple way to implement Single Sign-On (SSO) functionality.

Pagination

A technique used to divide a large set of results into smaller chunks (pages) to improve performance and usability in API responses.

Postman

A popular API development and testing tool that allows developers to design, debug, test, and document APIs.

Rate Limiting

A strategy used to control the amount of incoming and outgoing traffic to or from a network, often applied to APIs to prevent abuse and ensure fair usage.

Relative URI

A URI that is relative to another URI, known as the base URI. It does not include the scheme, host, or port, and is typically used to reference resources within the same context.

Resource

Any identifiable entity on the web that can be accessed and manipulated using an API. Resources are represented by URIs and can be documents, images, services, or any other entity.

RESTful

Refers to an API that adheres to the principles of REST (Representational State Transfer), an architectural style for designing networked applications. RESTful APIs use HTTP methods (GET, POST, PUT, DELETE, etc.) and are stateless, providing predictable, scalable, and cacheable interactions.

RFC (Request for Comments)

A type of publication from the IETF (Internet Engineering Task Force) and other organizations that describes methods, behaviors, research, or innovations applicable to the working of the internet and internet-connected systems.

RFC Requirement Keywords

Specific words used in RFCs to indicate the requirement levels of the specifications. The key words are:

  • MUST (or REQUIRED): Indicates an absolute requirement.
  • MUST NOT: Indicates an absolute prohibition.
  • SHOULD (or RECOMMENDED): Indicates that there may be valid reasons to ignore this item, but the full implications should be understood before choosing a different course.
  • SHOULD NOT (or NOT RECOMMENDED): Indicates that there may be valid reasons when the particular behavior is acceptable, but the full implications should be understood before implementing any behavior described with this label.
  • MAY (or OPTIONAL): Indicates a truly optional feature.

These keywords are defined in RFC 2119 and are used to precisely specify the requirements in other RFCs.

Swagger UI

An open-source tool that generates a user-friendly interface for exploring and testing RESTful APIs documented using the OpenAPI Specification.

URI (Uniform Resource Identifier)

A string of characters that unambiguously identifies a particular resource. URIs are used extensively on the web and include both URLs and URNs.

URL (Uniform Resource Locator)

A specific type of URI that not only identifies a resource but also provides a means of locating it by describing its primary access mechanism (e.g., HTTP, FTP) and the network location of the resource.

UUID (Universally Unique Identifier)

A 128-bit number used to uniquely identify information in computer systems. UUIDs are used in many contexts, including databases and distributed systems.

Versioning

The practice of managing changes to an API over time, typically by including version numbers in the API's endpoints or headers.

Webhook

A method of receiving real-time notifications from an API when certain events occur, rather than constantly polling for updates.

XML (Extensible Markup Language)

A markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. It's sometimes used as an alternative to JSON in APIs.

YAML (YAML Ain't Markup Language)

A human-friendly data serialization standard that can be used as an alternative to JSON or XML in API configurations and data exchange.