- backend
- express (micro framework para api rest)
- src
- Arquivo de entrada com as configurações de inicialização do express
- servir a aplicação em uma porta (e.g: listen 3333)
- Arquivo de entrada com as configurações de inicialização do express
- src
- nodemon (escuta as mudanças do código e reinicia o servidor automático)
- Arquivo de rotas da aplição, express router para gerenciá-las.
- Usar JSON -> express.use(json)
- Banco de dados -> Mongo (não possui muitos relacionamentos na aplicação)
- mongoose ODM
- Arquitetura M - Model, V - View (react), C - Controller
- Model Dev
- Schema e model do mongoose
- DevSchema:
- name: { string, required }
- user: { string, required }
- bio: String,
- avatar: { string, required }
- timestamps (createdAt, updatedAt)
- export model ('Dev', Devschema)
- DevSchema:
- Schema e model do mongoose
- Controller Dev
- Biblioteca para fazer requisições http para api externa (axios)
- create dev (store):
- username (github)
- Usar o model Dev para criar um novo dev
- name, user, bio e avatar;
- Antes de salvar, verificar se existe ou não ele no banco. (findOne)
- Like Controller
- Model Dev:
- likes [{ objectId (scheme types ), ref: 'Dev'}]
- dislikes [{ objectId (scheme types ), ref: 'Dev'}]
- store:
- devId como parâmetro da requisição
- user (headers da requisição, pode ser um jwt)
- usuário logado (findById(user))
- usuário alvo (findById(devId))
- Se usuário não existir, retornar erro.
- likes do usuário logado e inserir (push) o novo like e salvar as alterações no banco (save)
- verificar o match (entre os devs)
- likes do usuário alvo inclui o usuário logado? DEU MATCH : segue o fluxo.
- Model Dev:
- Dislike Controller
- Mesma coisa do like controller, mas sem opção do match
- Listagem de devs (Dev controller index)
- usuário logado (headers, findById)
- buscar todos que não são (usuário logado, dislikes e likes)
find({ $and: [ { _id: { $ne: user }, { _id: { $nin: loggedDev.likes } }, { _id: { $nin: loggedDev.dislikes } } ] })
- Model Dev
- Instalar cors: biblioteca para liberar o acesso externo à api;
- express (micro framework para api rest)
Last active
January 23, 2022 18:34
-
-
Save omurilo/81d60e3c3fff06a848be9add98ccb19e to your computer and use it in GitHub Desktop.
Tindev, orientações para criação da API
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment