Mastering API Testing: CRUD Operations with curl and Bearer Tokens in Django REST Framework

Muhammad Faizan Asghar
2 min readSep 9, 2023

As developers, one of our most crucial tasks is ensuring that our applications work as intended. When it comes to testing the functionality of a Django REST Framework (DRF) API, you need an efficient and versatile tool. Enter curl, a command-line powerhouse, and bearer token authentication, a key ingredient for securing your API.

Setting the Stage

Imagine you’re building a cutting-edge e-commerce platform. To make it happen, you’ve set up a Django project with DRF and created a sophisticated Product model. Each product has a name, description, and price. Your API is up and running, but how do you ensure it's delivering as expected?

Prerequisites

Before diving into the world of curl and bearer tokens, make sure you have the following prerequisites:

  1. A Django project with DRF configured.
  2. Token authentication enabled in your Django project’s settings.
  3. A valid bearer token for authentication.

Creating (POST)

In the world of CRUD operations, “Create” is the first step. You need to add new products to your database. Here’s where curl steps in:

curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <your_token>" -d '{"name": "New Product", "description": "This is a new product", "price": 19.99}' http://localhost:8000/api/products/

In this command, <your_token> represents your unique bearer token. It's your secret key to access and modify the API.In this command, <your_token> represents your unique bearer token. It’s your secret key to access and modify the API.

Reading (GET)

Reading data from your API is as straightforward as it gets. To retrieve a list of all products, execute this command:

curl -H "Authorization: Bearer <your_token>" http://localhost:8000/api/products/

You can even fetch a specific product by its ID:

curl -H "Authorization: Bearer <your_token>" http://localhost:8000/api/products/<product_id>/

Updating (PUT/PATCH)

As your e-commerce empire grows, you’ll need to update product information. Here’s how you can use curl to perform updates using the PUT method:

curl -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer <your_token>" -d '{"name": "Updated Product", "description": "This is an updated product", "price": 24.99}' http://localhost:8000/api/products/<product_id>/

With a simple command, you’ve just made changes to your product data.

Deleting (DELETE)

Finally, let’s talk about removing products from your catalog. Deleting a resource is straightforward with curl:

curl -X DELETE -H "Authorization: Bearer <your_token>" http://localhost:8000/api/products/<product_id>/

Just like that, you’ve pruned your product list.

Testing, Security, and Success

These curl commands, combined with bearer token authentication, provide a robust method for testing your DRF API. But remember :

Keep your tokens safe and use them only for authorized requests.

By mastering these techniques, you’ll not only ensure the reliability of your web application but also the security of your users’ data.In the dynamic world of API development, curl and bearer tokens are your trusty companions.

So, go ahead and incorporate these curl commands into your testing workflow. Happy testing!

--

--