Swiftorial Logo
Home
Swift Lessons
Tutorials
Learn More
Career
Resources

Building Custom APIs with Redis

Introduction

In this tutorial, we will build a custom API using Redis. Redis is an in-memory data structure store, used as a database, cache, and message broker. This tutorial will guide you from setting up Redis to creating and interacting with a custom API.

Prerequisites

Before we start, make sure you have the following installed:

  • Node.js and npm
  • Redis
  • A text editor or IDE

Step 1: Setting up Redis

First, we need to install and start Redis on your machine. Follow the instructions for your operating system:

For macOS:

brew install redis

brew services start redis

For Ubuntu:

sudo apt-get update

sudo apt-get install redis-server

sudo systemctl enable redis-server.service

sudo systemctl start redis-server.service

Step 2: Setting up Node.js Project

Create a new directory for your project and initialize a new Node.js project:

mkdir custom-api-redis

cd custom-api-redis

npm init -y

Next, install the necessary dependencies:

npm install express redis body-parser

Step 3: Creating the Express Server

Create a new file named server.js and add the following code:

const express = require('express');
const bodyParser = require('body-parser');
const redis = require('redis');

const app = express();
const port = 3000;

// Create Redis client
const client = redis.createClient();

app.use(bodyParser.json());

// Connect to Redis
client.on('connect', function() {
    console.log('Connected to Redis...');
});

app.listen(port, () => {
    console.log(`Server running on port ${port}`);
});
                

This sets up a basic Express server and connects to Redis.

Step 4: Creating API Endpoints

Next, let's create some basic API endpoints to interact with Redis.

1. Add Data to Redis

We will create a POST endpoint to add data to Redis.

app.post('/data', (req, res) => {
    const { key, value } = req.body;
    client.set(key, value, (err, reply) => {
        if (err) throw err;
        res.send(`Data added with key: ${key}`);
    });
});
                

2. Get Data from Redis

We will create a GET endpoint to retrieve data from Redis.

app.get('/data/:key', (req, res) => {
    const key = req.params.key;
    client.get(key, (err, reply) => {
        if (err) throw err;
        res.send(`Value: ${reply}`);
    });
});
                

3. Delete Data from Redis

We will create a DELETE endpoint to remove data from Redis.

app.delete('/data/:key', (req, res) => {
    const key = req.params.key;
    client.del(key, (err, reply) => {
        if (err) throw err;
        res.send(`Deleted: ${reply}`);
    });
});
                

Step 5: Testing the API

Start the server by running:

node server.js

Use a tool like Postman or curl to test the API endpoints.

1. Add Data

POST http://localhost:3000/data

{
    "key": "exampleKey",
    "value": "exampleValue"
}
                

2. Get Data

GET http://localhost:3000/data/exampleKey

3. Delete Data

DELETE http://localhost:3000/data/exampleKey

Conclusion

Congratulations! You have successfully created a custom API using Redis and Express. This tutorial covered the basics of setting up a Redis server, creating an Express server, and interacting with Redis through API endpoints. You can expand this project by adding more complex logic and additional endpoints as needed.