NEW
Also known as: Application Programming Interface
Interfaces that expose defined operations and data so software systems can communicate programmatically.
DESCRIPTION
APIs are contracts that define how software systems interact, typically through request and response semantics over protocols like HTTP/2 or HTTP/3, or via binary RPC. They enable modular architectures, microservices, and integration with third-party services. Common styles include REST, gRPC, and GraphQL, often described using the OpenAPI Specification. Robust APIs include authentication, authorization, rate limiting, pagination, and versioning strategies. Good API design emphasizes consistency, observability, and backwards compatibility to support evolvability and developer experience.
ALTERNATIVE DEFINITIONS
Wikipedia
An application programming interface (API) is a way for two or more computer programs to communicate with each other.
Emphasizes inter-program communication in a neutral, general-purpose sense.
Red Hat
An API is a set of definitions and protocols for building and integrating application software.
Highlights APIs as design contracts for building and integrating software systems.
IBM
APIs are mechanisms that enable two software components to communicate with each other using a set of definitions and protocols.
Frames APIs as a mechanism with formal definitions and protocols enabling communication.
RELATED TERMS
REST GraphQL gRPC OpenAPI Specification OAuth 2.0 Rate Limiting Webhooks Service Mesh Microservices Software Development Kit
COMPETING TERMS
Event Streaming File-Based Integration
RELATIONS
- Broader: API
KNOWLEDGE AREAS
Software Engineering Data Integration & Interoperability Platform & Tooling Cloud
TARGET AUDIENCE
Software Developer Full Stack Developer Data Engineer DevOps Engineer AI Engineer Software Architect Solution Architect Cloud Architect
EXTERNAL SOURCES
- Wikipedia - API
- OpenAPI Initiative - OpenAPI standard for describing HTTP APIs
- Microsoft - Microsoft REST API design guidelines
- gRPC - gRPC framework documentation
- IETF - OAuth 2.0 authorization framework
TOP QUESTIONS
Why are APIs critical in modern software architecture?
APIs decouple services and enable modular, scalable systems. They let teams evolve independently while maintaining reliable contracts. This makes integration and innovation faster.
Category: Relevancy
What is the difference between REST, GraphQL, and gRPC APIs?
REST uses resource-oriented HTTP semantics, GraphQL offers a flexible query language over a single endpoint, and gRPC uses binary Protobuf for efficient RPC. Choose based on payload, latency, and coupling.
Category: Example
How should API versioning be handled?
Prefer backwards-compatible changes and semantic versioning; use resource or header-based versioning when breaking changes are unavoidable. Communicate deprecations clearly and provide migration paths.
Category: Best practices
What are common mistakes when designing APIs?
Inconsistent naming, overloading endpoints, leaking internal models, and weak pagination or error handling are common pitfalls. Ignoring idempotency and rate limits leads to reliability issues.
Category: Mistakes
How do APIs relate to event streaming?
APIs are request/response, while streaming is event-driven and asynchronous. Many architectures combine both: APIs for commands/queries and streams for state change notifications.
Category: Comparison
How is API security typically implemented?
Use TLS, OAuth 2.0 or OIDC for auth, least-privilege scopes, input validation, and rate limiting. Consider API gateways and service meshes for centralized policy enforcement.
Category: Security
What is a hot topic around APIs today?
API-first development, contract testing, and API governance platforms are growing. Async APIs and event-driven specs (AsyncAPI) are also gaining adoption.
Category: Topic
How do you document APIs effectively?
Use OpenAPI or GraphQL SDL with autogenerated references, code samples, and SDKs. Include usage guides, error catalogues, and changelogs to support developers.
Category: Documentation
What metrics matter for API reliability?
Track latency percentiles, availability SLOs, error rates by code, saturation, and request volumes. Correlate with traces for bottleneck analysis.
Category: Observability