Building Python Applications with APIs Without a Framework: A Simple Guide

Estimated read time 3 min read

Python’s versatility extends to its ability to interact with APIs (Application Programming Interfaces) even without the use of a dedicated framework. In this guide, we’ll explore the basics of making API requests, handling responses, and integrating them into your Python applications without relying on a specific framework.

Step 1: Making HTTP Requests

To interact with APIs, you need to make HTTP requests. Python’s built-in requests library simplifies this process.

Sample Code:

import requests

url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)

if response.status_code == 200:
    data = response.json()
    print("API Response:")
    print(data)
else:
    print(f"Error: {response.status_code}")

In this example, we use the JSONPlaceholder API to retrieve a sample post. The response is then parsed as JSON, and the data is printed.

Step 2: Handling Authentication

If an API requires authentication, you can include it in your requests.

Sample Code:

import requests

url = "https://api.example.com/data"
headers = {"Authorization": "Bearer your_access_token"}

response = requests.get(url, headers=headers)

if response.status_code == 200:
    data = response.json()
    print("Authenticated API Response:")
    print(data)
else:
    print(f"Error: {response.status_code}")

In this case, we include an authentication token in the request headers. Adjust the authentication method based on the API’s requirements.

Step 3: Sending Data in Requests

If your API requires data in the request body (e.g., for creating or updating resources), you can include it in the request.

Sample Code:

import requests

url = "https://api.example.com/create"
data = {"key": "value"}

response = requests.post(url, json=data)

if response.status_code == 201:
    result = response.json()
    print("API Response for Creating Resource:")
    print(result)
else:
    print(f"Error: {response.status_code}")

Here, we use the json parameter to include the data in the request body as JSON.

Step 4: Error Handling

Handling errors in API requests is crucial. Check the response status code and handle errors accordingly.

Sample Code:

import requests

url = "https://api.example.com/resource/123"
response = requests.get(url)

if response.status_code == 200:
    data = response.json()
    print("API Response:")
    print(data)
else:
    if response.status_code == 404:
        print("Resource not found.")
    else:
        print(f"Error: {response.status_code}")

In this example, we specifically handle the case when the requested resource is not found (HTTP status code 404).

Conclusion:

While frameworks like Flask or Django can simplify API development, Python’s built-in capabilities, especially with the requests library, allow you to interact with APIs efficiently without additional frameworks. Whether you’re retrieving data, authenticating, sending data, or handling errors, Python’s simplicity and readability make it a powerful tool for working with APIs directly in your applications.

Related Articles