In this course we will implement a REST API in Node with express and typescript. We will store data in a mongodb database using mongoose. In order to implement this REST API, we will receive an OpenAPI Specification (OAS) file that will be the base to design and build our application.
The API we are going to build is a clone of the One Time Secret site. We will create an application that stores our secrets and provides us a URL to access them later, but with the condition that we can access that URL one time only. Whenever we attempt to retrieve the same secret again, hitting the same URL for a second time, we will receive an error.
Given that we already know how the public interface would look like with the OpenAPI Specification file provided, we will be using Test Driven Development (TDD) but following an Outside-In approach, also known as mockist approach or London School TDD. We will start writing the acceptance criteria tests, keeping them in red, we will start the double cycle and write unit tests for the inner components. That way we will build our way inside the application, one level at a time until we can make the acceptance test completely pass. While coding, even though we already have a quite clear direction of our application design, we will try to get inspired with DDD, Hexagonal Architecture and CQRS.