Todo List Endpoints¶
In order to make our REST API fully functional we will need the following endpoints which we will be available from our client React.js application:
-
/todo POST - endpoint responsible for adding new todo to the database with
title
provided by user -
/todos GET - endpoint that will server all todos from the database
-
/todo/:id DELETE - endpoint that will delete the specific todo from the database by
id
provided from the client application -
/todo/:id PUT - endpoint that will toggle
is_done
status of a todo item
Before creating these endpoints, let's first create mongoose Schema
and Model
for our todo item.
const express = require('express');
const mongoose = require('mongoose');
const cors = require('cors');
const app = express();
const port = 3001;
app.use(cors({origin: '*'}));
const mongoDBLink = 'mongodb+srv://test_user:Test12345@cluster0.axh68.mongodb.net/todo_list?retryWrites=true&w=majority';
mongoose.connect(mongoDBLink);
const TodoModel = mongoose.model('Todo', new mongoose.Schema({ title: String, is_done: Boolean }));
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
TodoModel
. We will use one created by mongo itself _id
, when needed.
Now, we have our mongo database connection setup, we have our Model and Schema create, it is time to start creating our endpoints.