Skip to content
/ todo-API Public

todo REST API with node.js, express.js, redis

Notifications You must be signed in to change notification settings

bcko/todo-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

todo-API

Dependencies

  • ubuntu 18.04
  • nodejs v10.7.0
  • npm v6.1.0
  • redis v4.0.10 docker image
    • start docker image with persistent storage
    • have port 6379 open for redis docker image
  • others see package.json

How to run

# start server
node app.js

How to test

Install Postman

API endpoints

HTTP route prefix : http://localhost:3000/api/v1/

API endpoints summary

Route Method Description
/Items GET read all items
/Items POST batch update/create items (idempotent)
/Items DELETE batch delete items (idempotent)
/Items/:id GET read item
/Items/:id POST create item. (update not possible)
/Items/:id PUT update item. (creation not possible)
/Items/:id DELETE delete item
HTTP Request Body Example

N/A

HTTP Response Body Example
{
  "items" : [
    { 
      "itemsID" : "1",
      "itemMessage" : "item 1 message"
    },
    {
      "itemsID" : "2",
      "itemMessage" : "item 2 message"
    }
  ]
}
HTTP Request Body Example
{
  "items" : [
    { 
      "itemsID" : "1",
      "itemMessage" : "item 1 message"
    },
    {
      "itemsID" : "2",
      "itemMessage" : "item 2 message"
    }
  ]
}
HTTP Response Body Example
HTTP Request Body Example
{
  "items" : [
    { "itemsID" : "1"},
    { "itemsID" : "2"}
  ]
}
HTTP Response Body Example
HTTP Request Body Example

N/A

HTTP Response Body Example
{
  "itemsID" : "2",
  "itemMessage" : "item 2 message"
}
HTTP Request Body Example
{
  "itemsID" : "2",
  "itemMessage" : "item 2 message"
}
HTTP Response Body Example
HTTP Request Body Example
{
  "itemsID" : "2",
  "itemMessage" : "item 2 updated message"
}
HTTP Response Body Example
HTTP Request Body Example

N/A

HTTP Response Body Example

Optional Tasks

  • [] Implement JWT authorization using PassportJS
  • [] API pagination
  • [] Test
    • [] MochaJS
    • [] SinonJS
    • [] Cypress
  • [] Implement web security best practices (e.g. XSS)
  • [] Implement web performance best practices (e.g. compression)
  • [] Deploy to Google Kubernetes Engine

References

API design

About

todo REST API with node.js, express.js, redis

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published