What Is an API? Understanding the Bridge Between Systems

What Is an API? Understanding the Bridge Between Systems

Learn what APIs are, why they exist, and how REST APIs power everything from mobile apps to payment gateways. A complete beginner's guide with real-world examples and visual diagrams.

What Is an API? Understanding the Bridge Between Systems

Welcome to the very beginning of your journey into one of the most important concepts in modern software development: APIs. Whether you realize it or not, you interact with dozens of APIs every single day. Every time you check the weather on your phone, scroll through Instagram, make an online payment, or even ask a smart speaker for directions, an API is working behind the scenes.

By the end of this lesson, you will understand exactly what an API is, why REST became the dominant architecture for web APIs, and how these invisible bridges power the entire digital world.


1. What Is an API?

API stands for Application Programming Interface. That sounds technical, but the concept is surprisingly simple.

An API is a contract between two software systems that defines how they can communicate with each other. It specifies what requests you can make, what data you need to send, and what responses you will receive back.

The Restaurant Analogy

The most intuitive way to understand an API is through the restaurant analogy:

  • You are the Client (the application making a request).
  • The Kitchen is the Server (the system that processes the request and prepares the response).
  • The Waiter is the API (the intermediary that takes your order to the kitchen and brings back your food).

You never go into the kitchen yourself. You do not need to know how the food is prepared. You just tell the waiter what you want (the request), and the waiter brings you the result (the response).

sequenceDiagram
    participant Client as You - The Client
    participant API as Waiter - The API
    participant Server as Kitchen - The Server

    Client->>API: Place order - GET /menu/pasta
    API->>Server: Forward request
    Server-->>API: Prepare response - pasta data
    API-->>Client: Deliver response - your pasta

Why Do APIs Exist?

APIs exist because of a fundamental principle in software engineering: separation of concerns. In the real world:

  1. Your phone does not store every Instagram post ever created. It asks Instagram's servers for the posts you need.
  2. An e-commerce website does not process credit cards itself. It asks a payment gateway API (like Stripe) to handle the transaction.
  3. A weather app does not have weather stations. It asks a weather service API for the latest data.

Without APIs, every application would need to build everything from scratch. APIs allow systems to specialize and share capabilities.

A Simple Technical Example

Imagine you are building a mobile app that shows users the current weather. You could:

Option A (Without API): Launch your own satellites, build weather stations, hire meteorologists, and build prediction models. Cost: billions of dollars.

Option B (With API): Send a simple request to the OpenWeather API and get the data in milliseconds. Cost: free to a few dollars per month.

Here is what that request looks like:

curl https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY

And the response you get back:

{
  "name": "London",
  "main": {
    "temp": 285.15,
    "humidity": 72
  },
  "weather": [
    {
      "description": "overcast clouds"
    }
  ]
}

That is the power of APIs. One line of code gives you access to a global weather monitoring network.


2. Types of APIs

Before we dive into REST, it helps to understand that there are several types of APIs:

By Access Level

TypeDescriptionExample
Public APIsOpen to any developerTwitter API, OpenWeather API
Private APIsUsed internally within a companyInternal user database API
Partner APIsShared with specific business partnersPayment processor APIs

By Architecture Style

StyleDescriptionCommon Use
RESTUses HTTP methods and URLsWeb and mobile apps
GraphQLQuery language for APIsComplex data fetching
SOAPXML-based protocolEnterprise/legacy systems
gRPCHigh-performance binary protocolMicroservices communication
WebSocketReal-time bidirectionalChat apps, live updates

In this course, we focus entirely on REST APIs because they are by far the most common type you will encounter as a developer, tester, or technical professional.


3. What Is a REST API?

REST stands for Representational State Transfer. It was defined by Roy Fielding in his doctoral dissertation in 2000 and has since become the de facto standard for building web APIs.

A REST API is an API that follows a specific set of rules (constraints) and uses the existing infrastructure of the web (HTTP) to allow systems to communicate.

The Key Idea Behind REST

REST treats everything as a resource. A resource is any piece of data or object that can be accessed and manipulated. For example:

  • A user is a resource: /users/42
  • A blog post is a resource: /posts/17
  • An order is a resource: /orders/305

You interact with these resources using standard HTTP methods (GET, POST, PUT, DELETE), and the data is typically exchanged in JSON format.

graph LR
    A[Client App] -->|HTTP Request| B[REST API Server]
    B -->|JSON Response| A

    C[Mobile App] -->|HTTP Request| B
    B -->|JSON Response| C

    D[Third-Party Service] -->|HTTP Request| B
    B -->|JSON Response| D

    style B fill:#4f46e5,color:#fff,stroke:#333
    style A fill:#0891b2,color:#fff
    style C fill:#0891b2,color:#fff
    style D fill:#0891b2,color:#fff

REST Constraints (The Rules)

Roy Fielding defined six constraints that a system must follow to be considered "RESTful":

  1. Client-Server Architecture: The client and server are separate. The client handles the user interface, and the server handles data storage and business logic.

  2. Statelessness: Every request from the client must contain all the information the server needs to process it. The server does not remember previous requests.

  3. Cacheability: Responses can be cached to improve performance. The server can indicate whether a response is cacheable.

  4. Uniform Interface: There is a consistent, standardized way to interact with resources (using URLs and HTTP methods).

  5. Layered System: The client does not need to know whether it is talking directly to the server or through an intermediary (like a load balancer or proxy).

  6. Code on Demand (Optional): The server can optionally send executable code to the client (like JavaScript).

Do not memorize these. The important takeaway is that REST uses URLs to identify resources and HTTP methods to act on them, and every request is self-contained.


4. Real-World REST API Examples

Let us walk through three real-world scenarios to make this concrete.

Example 1: Instagram Loading Your Feed

When you open Instagram, here is what happens behind the scenes:

sequenceDiagram
    participant Phone as Instagram App
    participant API as Instagram REST API
    participant DB as Instagram Database

    Phone->>API: GET /feed?user_id=12345
    API->>DB: Query latest posts for user
    DB-->>API: Return post data
    API-->>Phone: JSON with posts, images, likes
    Phone->>Phone: Render the feed on screen

The Instagram app on your phone sends a GET request to Instagram's API. The API queries the database, collects the relevant posts, and sends them back as JSON data. Your phone then renders that data as the beautiful feed you see.

Example 2: Making an Online Payment

When you buy something online and enter your credit card:

sequenceDiagram
    participant User as Your Browser
    participant Shop as E-Commerce Server
    participant Stripe as Stripe Payment API

    User->>Shop: Click "Pay Now"
    Shop->>Stripe: POST /v1/charges with card details
    Stripe-->>Shop: Response - payment approved or declined
    Shop-->>User: Show confirmation or error

The e-commerce server does not process your card directly. It sends a POST request to the Stripe API with the payment details. Stripe handles all the complex financial processing and returns a response indicating success or failure.

Example 3: Checking the Weather

sequenceDiagram
    participant App as Weather App
    participant API as Weather REST API
    participant Data as Weather Data Service

    App->>API: GET /weather?city=NewYork
    API->>Data: Fetch latest weather data
    Data-->>API: Temperature, humidity, conditions
    API-->>App: JSON response with weather data
    App->>App: Display weather to user

Your weather app sends a GET request with the city name. The API fetches the latest data and returns it as structured JSON.


5. The Anatomy of a REST API Interaction

Every REST API interaction has two parts: the Request and the Response.

The Request (What You Send)

A request consists of four parts:

ComponentDescriptionExample
MethodThe action you want to performGET, POST, PUT, DELETE
URLThe address of the resourcehttps://api.example.com/users/42
HeadersMetadata about the requestContent-Type: application/json
BodyThe data you are sending (optional){"name": "John", "email": "john@test.com"}

The Response (What You Get Back)

A response consists of three parts:

ComponentDescriptionExample
Status CodeA number indicating the result200 (Success), 404 (Not Found)
HeadersMetadata about the responseContent-Type: application/json
BodyThe actual data returned{"id": 42, "name": "John"}

Putting It All Together

Here is a complete example using a real, free API called JSONPlaceholder (a fake online REST API for testing):

Request:

curl https://jsonplaceholder.typicode.com/users/1

Response:

{
  "id": 1,
  "name": "Leanne Graham",
  "username": "Bret",
  "email": "Sincere@april.biz",
  "address": {
    "street": "Kulas Light",
    "suite": "Apt. 556",
    "city": "Gwenborough"
  },
  "phone": "1-770-736-8031 x56442",
  "website": "hildegard.org"
}

You sent a GET request to /users/1, and the API returned the user with ID 1 as a JSON object. It is that simple.


6. Why REST Won the API Wars

You might wonder: with all those API styles available (SOAP, GraphQL, gRPC), why did REST become the standard?

Simplicity

REST uses HTTP, which every web browser, server, and programming language already understands. There is no special protocol to install or learn. If you can open a URL in a browser, you can make a REST API call.

Universality

REST works over the internet. Any device that can make an HTTP request can use a REST API. Phones, tablets, servers, IoT devices, command-line tools like cURL, all of them work out of the box.

Scalability

Because REST is stateless (the server does not remember previous requests), it is easy to scale. You can add more servers behind a load balancer, and any server can handle any request.

Human-Readable

REST API URLs look like web addresses, and the data is typically JSON, which is easy for humans to read and write. Compare this to SOAP, which uses verbose XML.

REST URL:

GET /users/42/orders

SOAP equivalent:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetUserOrders>
      <UserId>42</UserId>
    </GetUserOrders>
  </soap:Body>
</soap:Envelope>

The REST version is clearly simpler and more intuitive.


7. Your First Live API Call

Let us make your very first API call right now. You will need a terminal (Command Prompt on Windows, Terminal on macOS/Linux).

Open your terminal and type:

curl https://jsonplaceholder.typicode.com/posts/1

Press Enter. You should see something like this:

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum..."
}

Congratulations! You just made your first REST API call. You sent a GET request to a server, and it responded with JSON data representing a blog post.

If you do not have curl installed, do not worry. We will cover installation and usage in detail in Module 4.


8. The REST API Ecosystem

REST APIs are everywhere. Here are some categories of APIs you might interact with:

graph TD
    A[REST APIs in the Wild] --> B[Social Media]
    A --> C[Payments]
    A --> D[Communication]
    A --> E[Data and Analytics]
    A --> F[Cloud Services]
    A --> G[AI and ML]

    B --> B1[Twitter/X API]
    B --> B2[Facebook Graph API]
    C --> C1[Stripe API]
    C --> C2[PayPal API]
    D --> D1[Twilio - SMS]
    D --> D2[SendGrid - Email]
    E --> E1[Google Analytics]
    E --> E2[OpenWeather]
    F --> F1[AWS APIs]
    F --> F2[Google Cloud APIs]
    G --> G1[OpenAI API]
    G --> G2[Hugging Face API]

    style A fill:#4f46e5,color:#fff
    style B fill:#0891b2,color:#fff
    style C fill:#0891b2,color:#fff
    style D fill:#0891b2,color:#fff
    style E fill:#0891b2,color:#fff
    style F fill:#0891b2,color:#fff
    style G fill:#0891b2,color:#fff

Every major technology company provides REST APIs. Learning to use them is one of the most valuable skills you can develop.


Summary and Key Takeaways

  1. An API is a contract that allows two systems to communicate without knowing each other's internal details.
  2. REST is the most popular API architecture, built on HTTP, using URLs for resources and standard methods for actions.
  3. Every REST interaction consists of a Request (method, URL, headers, body) and a Response (status code, headers, body).
  4. JSON is the standard data format for REST APIs.
  5. REST won because of its simplicity, universality, and scalability.
  6. You can make API calls from anywhere: browsers, terminals, mobile apps, or server code.

Lesson Review Quiz

?Knowledge Check

What does API stand for?

?Knowledge Check

In the restaurant analogy, what does the waiter represent?

?Knowledge Check

Which of the following is a key constraint of REST?


Practice Exercise

  1. Open your terminal and run the following commands. Observe the different responses:
# Get a single post
curl https://jsonplaceholder.typicode.com/posts/1

# Get a single user
curl https://jsonplaceholder.typicode.com/users/1

# Get all comments for post 1
curl https://jsonplaceholder.typicode.com/posts/1/comments
  1. Compare the structure of the responses. Notice how each URL represents a different resource and returns different JSON data.

  2. Try changing the numbers in the URLs (e.g., /posts/2, /users/5) and see how the data changes. You are already navigating a REST API!

In the next module, we will dive deep into HTTP, the protocol that makes all of this possible.

Subscribe to our newsletter

Get the latest posts delivered right to your inbox.

Subscribe on LinkedIn