Esse é o repositório com a base de JSON-Server + JSON-Server-Auth para ser usada no desenvolvimento da API de cursos.
Assim como a documentação do JSON-Server-Auth traz (https://www.npmjs.com/package/json-server-auth), existem 3 endpoints que podem ser utilizados para cadastro e 2 endpoints que podem ser usados para login. Adicionalmente há 2 endpoints para iniciar, contendo a lista de cursos e a lista de disciplinas.
POST /register
POST /signup
POST /users
Formato da requisição:
{
"email": "[email protected]",
"password": "123456",
"name": "Kenzinho",
"age": 38
}
Formato da resposta:
{
"email": "[email protected]",
"password": "$2a$10$YQiiz0ANVwIgpOjYXPxc0O9H2XeX3m8OoY1xk7OGgxTnOJnsZU7FO",
"name": "Kenzinho",
"age": 38,
"id": 1
}
Qualquer um desses 3 endpoints irá cadastrar o usuário na lista de "Users", sendo que os campos obrigatórios são os de email e password. Você pode ficar a vontade para adicionar qualquer outra propriedade no corpo do cadastro dos usuários.
POST /login
POST /signin
Qualquer um desses 2 endpoints pode ser usado para realizar login com um dos usuários cadastrados na lista de "Users"
Formato da requisição:
{
"email": "[email protected]",
"password": "123456",
"name": "Kenzinho",
"age": 38
}
Formato da resposta:
{
"email": "[email protected]",
"password": "$2a$10$YQiiz0ANVwIgpOjYXPxc0O9H2XeX3m8OoY1xk7OGgxTnOJnsZU7FO",
"name": "Kenzinho",
"age": 38,
"id": 1
}
Quando logado, você cria seu curso para poder ter acesso à quais disciplinas quer adicionar
GET /courses
Formato da resposta:
[
{
"course_name": "front end developer",
"course_description": "developing for the future",
"id": 1
},
{
"course_name": "backend end developer",
"course_description": "backing to the future",
"id": 2
}
]
POST /courses
Formato de envio do JSON:
{
"course_name": "backend end developer",
"course_description": "backing to the future",
"userId: 2"
}
Formato da resposta:
{
"course_name": "backend end developer",
"course_description": "backing to the future",
"userId: 2"
"id": 3
}
PATCH /courses/:course_id
Formato de envio do JSON:
{
"course_description": "new description"
}
Formato da resposta:
{
"course_description": "new description"
}
DELETE /courses/:course_id
Nota: não é necessário um corpo da requisição (JSON)
Quando logado, você cria sua disciplinas para poder associar aos cursos (você também pode consultar todas as disciplinas mesmo não logado)
GET /disciplinas
Formato da resposta:
[
{
"discipline_name": "react",
"discipline_description": "create interfaces",
"id": 1
},
{
"discipline_name": "node",
"discipline_description": "build scalable applications",
"id": 2
}
]
POST /disciplinas
Formato de envio do JSON:
{
"discipline_name": "react",
"discipline_description": "create interfaces"
}
Formato da resposta:
{
"discipline_name": "react",
"discipline_description": "create interfaces",
"id": 1
}
PATCH /disciplinas/:discipline_id
Formato de envio do JSON:
{
"discipline_description": "new description"
}
Formato da resposta:
{
"discipline_description": "new description"
}
DELETE /disciplinas/:discipline_id
Nota: não é necessário um corpo da requisição (JSON)