- 1. Preâmbulo
- 2. Resumo do projeto
- 3. Objetivos de aprendizagem
- 4. Critérios de aceitação mínimos do projeto
- 5. Dicas e leituras complementares
- 6. HTTP API Checklist
Um pequeno restaurante de hambúrgueres, que está crescendo, precisa de um sistema através do qual ele possa receber pedidos usando um tablet e enviá-los para a cozinha para que eles sejam preparados de forma eficiente.
Nossa cliente nos pediu para desenvolver uma API que possa ser integrada com uma interface, na qual outra equipe de desenvolvedoras está trabalhando.
Por uma API, neste caso, nos referimos a um servidor web, que é basicamente um programa que escuta uma porta de rede, através da qual podemos enviar requisições (request) e obter respostas (response).
Um servidor web deve gerenciar as requisições recebidas e produzir respostas àquelas requisições que serão enviadas de volta para o cliente. Quando falamos sobre aplcações de servidor, isso implica uma arquitetura cliente / servidor, onde o cliente é o programa que faz as requisições através de uma rede (por exemplo, o navegador, cURL, etc), e o servidor é o programa que recebe essas requisições e respostas.
O Node.js nos permite criar servidores Web super eficientes de uma forma relativamente simples, tudo isso usando JavaScript!
A cliente nos deu um link para a documentação que especifica o comportamento esperado da API que iremos disponibilizar por HTTP. Lá você pode encontrar todos os detalhes de quais endpoints você deve implementar na aplicação, quais parâmetros são esperados, o que eles devem responder, etc.
O principal objetivo de aprendizagem é ganhar experiência com o Node.js como uma ferramenta para desenvolver aplicações de servidores, junto com uma série de ferramentas comuns usadas neste tipo de contexto (Express como framework, MongoDB ou MySQL como banco de dados, ferramentas de autenticação, etc).
Neste projeto você irá construir um servidor web que deve servir JSON
via HTTP
e implementá-lo em um servidor na nuvem.
Para completar o projeto, você terá que se familiarizar com conceitos como rotas (routes), URLs, HTTP e REST (verbs, request, response, headers, body, status codes...), JSON, JWT (JSON Web Tokens), conexão com um banco de dados, variáveis de ambiente, deployment, etc.
Segundo o estabelecido pela documentação entregue por nossa cliente, a API deve conter os seguintes endpoints:
GET /
GET /users
GET /users/:uid
POST /users
PUT /users/:uid
DELETE /users/:uid
GET /products
GET /products/:productid
POST /products
PUT /products/:productid
DELETE /products/:productid
GET /orders
GET /orders/:orderid
POST /orders
PUT /orders/:orderid
DELETE /orders/:orderid
- Express
- Heroku
- Postman
- Variáveis de ambiente - Wikipedia
process.env
- Node.js docs- TODO: providers de VPS recomendados.
- ssh
- Swagger
-
GET /
-
GET /users
-
GET /users/:uid
-
POST /users
-
PUT /users/:uid
-
DELETE /users/:uid
-
GET /products
-
GET /products/:productid
-
POST /products
-
PUT /products/:productid
-
DELETE /products/:productid
-
GET /orders
-
GET /orders/:orderid
-
POST /orders
-
PUT /orders/:orderid
-
DELETE /orders/:orderid