O exercício deste repositório consiste em criar o escopo de uma API REST com base nas telas de Login, Cadastro, Feed e Criação de Post no Instagram.
Note
O código de aula está disponível na brach master. As alterações realizadas em aula foram incluídas na branch "codigo_atualizado".
- Login;
- Cadastro;
- Ver os dados de perfil e editar;
- Ver postagens de outras pessoas;
- Ver quantidade de curtidas;
- Ver comentários de uma postagem;
- Adicionar curtida;
- Adicionar comentário.
- Ver localização;
- Ver pessoas que curtiram uma postagem;
- Curtir um comentário;
- Comentar em outros comentários;
1. POST - Login
- username e senha
- sucesso ou erro
- Validar username e senha;
- Buscar o usuário no banco de dados;
- Verificar se a senha informada está correta;
- Gerar o token de autenticação;
- Retornar os dados de usuário e token de autenticação.
2. POST - Cadastro
- username e senha
- sucesso ou erro
- token.
- Validar username e senha;
- Verificar se o username já existe;
- Criptografar a senha;
- Cadastrar o usuário no banco de dados;
- Retornar sucesso ou erro.
1. GET - Perfil
- token (contém username ou id do usuário)
- URL da foto, Nome, username, site e bio
- e-mail, telefone e gênero
- Validar o token do usuário
- Buscar o usuário/cadastro com informação do token
- Retornar os dados do usuário
2. PUT - Atualizar cadastro
-URL da foto, Nome, username, site e bio
-e-mail, telefone e gênero
-senha
-sucesso ou erro
- Validar o token do usuário;
- Buscar o usuário/cadastro com informação do token;
- Atualizar os dados do usuário (exigir pelo menos um campo para atualizar);
- Criptografar nova senha, se houver alteração;
- Verificar nome e username (se já existe no banco de dados), se houver alteração;
- Atualizar registro do usuário no banco de dados;
- Retornar sucesso ou erro.
1. GET - Postagens
-token (que terá id ou username)
-offset (paginação)
- postagens
- informar se foi curtida por mim ou não
- id
- Usuário
- URL da foto
- username
- perfil oficial (boolean)
- Fotos
- Curtidas (quantidade)
- Comentários
- username
- texto
-Data
- Validar o token do usuário;
- Buscar o usuário/cadastro com informação do token;
- Retornar postagens de outras pessoas.
2. POST - Postagens
- token (que terá id ou username)
- texto da postagem
- array com fotos
-sucesso ou erro
- Validar o token do usuário;
- Buscar o usuário/cadastro com informação do token;
- Exigir que seja informado pelo menos uma foto no array;
- Cadastrar a postagem para o usuário logado;
- Cadastro das fotos da postagem;
- Retornar sucesso ou erro.
1. POST - Curtir
-token (contém username ou id do usuário)
-id da postagem
-sucesso ou erro
- Validar o token do usuário;
- Buscar o usuário/cadastro com informação do token;
- Buscar a postagem com informação do id;
- Verificar se o usuário já curtiu a postagem;
- Cadastrar a curtida da postagem no banco de dados;
- Retornar sucesso ou erro.
1. POST - Comentário
-token (contém username ou id do usuário)
-id da postagem
-texto do comentário
-sucesso ou erro
- Validar o token do usuário;
- Buscar o usuário/cadastro com informação do token;
- Validar se há texto no comentário;
- Buscar a postagem com informação do id;
- Cadastrar o comentário na postagem;
- Retornar sucesso ou erro.