I created this microservice as a requirement for my freeCodeCamp Information Security and Quality Assurance Certification, using Node.js, Express, MongoDB, Chai, and Helmet. The front end API tests on the home page also use Bootstrap, jQuery, and highlight.js.
You can read the functional tests I wrote on GitHub or Glitch. To run the tests yourself, create a MongoDB database, fork/remix this project, create a .env
file with DB="{your MongoDB URI}"
and NODE_ENV="test"
, start the server, and look at the server console logs.
This project fulfills the following user stories:
- Nothing from my website will be cached in my client as a security measure.
- I will see that the site is powered by
"PHP 4.2.0"
even though it isn't as a security measure. - I can post a
title
to/api/books
to add a book and returned will be the object with thetitle
and a unique_id
. - I can get
/api/books
to retrieve an aray of all books containingtitle
,_id
, &commentcount
. - I can get
/api/books/{_id}
to retrieve a single object of a book containingtitle
,_id
, & an array ofcomments
(empty array if no comments present). - I can post a
comment
to/api/books/{_id}
to add a comment to a book and returned will be the books object similar to get/api/books/{_id}
. - I can delete
/api/books/{_id}
to delete a book from the collection. Returned will be"delete successful"
if successful. - If I try to request a book that doesn't exist I will get a
"no book exists"
message. - I can send a delete request to
/api/books
to delete all books in the database. Returned will be"complete delete successful"
if successful. - All 6 functional tests required are complete and passing.