SystemCity
WorkspaceProblemsCanvasPricing
Sign in
S

SystemCity

AI-powered system design tutor. Learn architecture, ace interviews, build real systems.

Learn

  • Learn System Design
  • Interview Prep Guide
  • All Problems
  • Glossary
  • Compare
  • Design Canvas

Product

  • Pricing
  • Portfolio
  • Support

Legal

  • Terms
  • Privacy
  • Refunds

© 2026 SystemCity. All rights reserved.

Master system design · interview prep · 120+ problems

Back to glossary

Communication & APIs

REST API

Also known as: REST, RESTful API

An architectural style for web APIs based on HTTP verbs (GET, POST, PUT, DELETE) acting on resources identified by URLs.

In depth

REST (Representational State Transfer) is an architectural style introduced by Roy Fielding in 2000. A RESTful API exposes resources at URLs (e.g., /users/42) and uses HTTP methods to act on them: GET to read, POST to create, PUT/PATCH to update, DELETE to remove. Responses are typically JSON, status is communicated via HTTP status codes, and responses should be cacheable when possible.

REST became the dominant API style of the web because it leverages HTTP semantics every browser, proxy, and CDN already understands. Caching, content negotiation, conditional requests (ETag, If-Modified-Since), authentication (Authorization header), and partial responses all come for free.

The weaknesses of REST: chatty when a client needs many related resources (the n+1 problem), under- or over-fetching (fixed response shapes), no built-in schema, and limited expressiveness for streaming or bidirectional communication. These gaps are what gRPC, GraphQL, and WebSocket fill.

When to use

Use REST as the default for public APIs and most service-to-service HTTP communication. It is universally understood and well-tooled.

Tradeoffs

REST can be inefficient for mobile clients (over-fetching), tedious for graph-shaped data, and weak on contract enforcement compared to gRPC or GraphQL.

Related terms

gRPC

A high-performance RPC framework using HTTP/2, Protocol Buffers, and code generation for type-safe, low-latency service-to-service communication.

GraphQL

A query language for APIs that lets clients request exactly the fields they need in a single request, eliminating over- and under-fetching.

API Gateway

A single entry point that routes external requests to internal services, handling concerns like authentication, rate limiting, and request transformation in one place.

WebSocket

A persistent, bidirectional communication channel between client and server over a single TCP connection — the standard for real-time web features.

Message Queue

A buffer that holds messages between producers and consumers, enabling asynchronous processing and decoupling of services.

Pub/Sub

A messaging pattern where publishers emit messages to topics without knowing who consumes them, and subscribers receive messages from topics they care about.