Understanding APIs: From Concept to a Working Mini Project

When I first started learning about APIs, the term felt abstract. Everyone seemed to use the word API, but depending on the context, they could be referring to a specification, a piece of code, a running service, or an entire business strategy.

To better understand the concept, I combined several learning approaches: reading, mind mapping, experimentation, and system-level discussions. By the end of the exercise, APIs felt much less like a buzzword and much more like a practical tool that connects software systems together.

Version 1.0.0

Starting with the Big Picture

One of the first resources I explored was APIs: A Strategy Guide by Daniel Jacobson, Greg Brail, and Dan Woods.

The book approaches APIs not merely as a technical topic but as a business strategy. Modern companies increasingly expose their data and services through APIs because APIs create channels between systems, partners, customers, and developers.

Using NotebookLM, I generated a mind map to summarize the major concepts.

Some of the key themes included:

  • What an API actually is
  • Internal vs. public APIs
  • Business motivations for creating APIs
  • API ecosystems and value chains
  • Direct and indirect monetization models
  • Technical contracts and specifications

One insight that stood out was that APIs are not purely technical artifacts. They are often designed to enable communication between different applications, business units, partners, and even entire industries.

What Exactly Is an API?

After several discussions, I found the simplest definition to be:

An API is a contract that defines how one piece of software can communicate with another piece of software.

The important word here is contract.

An API does not necessarily describe:

  • How the code is written
  • Which programming language is used
  • Which database stores the data
  • Which server executes the code

Instead, it defines:

  • What requests can be sent
  • What parameters are accepted
  • What responses are returned
  • What rules both sides must follow

Distinguishing Three Frequently Confused Concepts

1. API Contract

The specification.

Example:

GET /users/123

returns:

{
"name": "John"
}

This is the agreement between client and server.

2. API Implementation

The actual code that fulfills the request.

Example:

@app.route("/users/<id>")
def get_user(id):
return jsonify(user_data)

This is the logic written by developers.

3. API Server

The running process.

When Flask is started:

app.run()

the program becomes a server process that continuously listens for incoming requests.

This was an important realization:

The API itself is not a server.

The API contract is the specification.

The API implementation is the code.

The API server is the running process that hosts the implementation.

Building a Mini API Server

To move beyond consuming APIs, I explored how one might create an API.

Using Flask, I designed a simple learning project consisting of:

Step 1: Install Flask

Flask provides the tools necessary for Python programs to speak HTTP.

Step 2: Create an API Server

Define an endpoint:

@app.route("/hello")
def hello():
return {
"message": "Hello World"
}

Step 3: Create a Client

Send a request:

response = requests.get(
"http://127.0.0.1:5000/hello"
)

Receive the response:

{
"message": "Hello World"
}

This small exercise helped illustrate how APIs work from both sides of the connection.

Where APIs Sit in the Bigger System

One of the most valuable discussions was placing APIs within the larger flow of how the web works.

A simplified version looks like this:

     Human Intent
          ↓
        Browser
          ↓
      JavaScript
          ↓
         HTTP
          ↓
       Internet
          ↓
      Web Server
          ↓
     Application
          ↓
     API Endpoint
          ↓
       Database
          ↓
     API Response
          ↓
       Browser
          ↓
         User

This perspective helped connect many topics that previously felt separate:

  • Networking
  • Web development
  • Databases
  • HTTP
  • JavaScript
  • WordPress
  • Flask
  • Cloud services

The API becomes the bridge between the application’s internal logic and the outside world.

Types of APIs

Another area we explored was API classification.

Internal APIs

Used inside an organization.

Examples:

  • ERP integrations
  • Internal accounting systems
  • Internal reporting tools

These APIs are not exposed to the public.

Partner APIs

Shared with selected external organizations.

Examples:

  • Suppliers
  • Business partners
  • Contractors

Access is restricted.

Public APIs

Available to external developers.

Examples:

  • OpenAI API
  • Google Maps API
  • Weather APIs

These are often monetized through subscriptions or usage-based pricing.

REST and Non-REST APIs

REST is currently the most common API style.

REST APIs typically:

  • Use HTTP
  • Use URLs as endpoints
  • Return JSON
  • Follow predictable conventions

Example:

GET /users
POST /users
PUT /users/123
DELETE /users/123

However, REST is not the only approach.

Other API technologies include:

  • GraphQL
  • SOAP
  • gRPC
  • WebSockets

Each has advantages depending on performance, flexibility, and system requirements.

Why This Matters

Learning APIs feels like a natural next step after learning databases and web development.

A database stores information.

An application processes information.

An API exposes information.

Without APIs, modern software ecosystems would be significantly more isolated and difficult to integrate.

Understanding APIs also provides a foundation for:

  • Web development
  • Cloud computing
  • Mobile applications
  • AI integrations
  • ERP systems
  • Data engineering
  • Internal controls and system integration projects

Recommended Learning Resource

For readers interested in learning APIs from a practical programming perspective, I recommend the following playlist:

Python REST APIs with Flask

The playlist starts with fundamentals and gradually moves toward building real API applications, making it suitable for beginners who want hands-on experience.

Final Thoughts

What began as a simple question — “What exactly is an API?” — evolved into a much broader understanding of how modern software systems communicate.

Through reading, mind mapping, experimentation in Kaggle, designing a miniature Flask server, and discussing system architecture, I came away with one key realization:

An API is not merely code. It is a communication contract that allows independent systems to work together.

One analogy that helped me understand this concept was to think of an API as a translator. Just as a translator allows two people who speak different languages to communicate, an API allows different software systems to exchange information without needing to understand each other’s internal workings. A mobile app, a website, a database, and a cloud service may all be built using different technologies, yet they can still communicate effectively as long as they agree on the same API contract.

Once you understand that idea, many pieces of modern technology—from weather apps and banking applications to WordPress sites and AI systems—start to make much more sense. APIs are everywhere, quietly acting as the bridges that connect software together and enable the digital experiences we use every day.

This exercise also gave me a greater appreciation for the work performed by backend engineers. While calling an API may require only a few lines of code, integrating APIs into a larger application often involves studying documentation, understanding authentication methods, handling errors, processing data formats, and ensuring that multiple systems can communicate reliably. Before the rise of AI-assisted development tools, engineers frequently spent hours—or even days—reading API documentation, studying authentication requirements, and experimenting with requests before successfully integrating a third-party API into their applications.

Today, AI tools such as ChatGPT, Claude, and GitHub Copilot can accelerate that learning process by explaining documentation, generating example code, and helping troubleshoot issues. However, developers still need to understand the underlying API contract, system architecture, and business requirements in order to build reliable solutions.

For me, this learning exercise was valuable not only because I learned how to call an API or build a simple Flask endpoint, but because it helped place APIs within the larger ecosystem of networking, web development, databases, cloud services, and software architecture. What once seemed like an isolated technical term now feels like one of the fundamental building blocks of modern computing.

Other online visual references

— Linden Lake


Leave a Reply

Your email address will not be published. Required fields are marked *