devhatt / pet-dex-backend

MIT License
43 stars 55 forks source link

Criar Style Guide da aplicação #82

Open devlefel opened 5 months ago

devlefel commented 5 months ago

Describe the feature Criar Style guide para aplicação, mostrando como deve ser o codigo, como devem ser as rotas, etc.

ESSE É UM DOCUMENTO VIVO

No final, linkar ao readme da aplicação

Description Precisamos de um template para o style guide. É necessário documentar cada feature a ser inserida na aplicação


Use Case Será usado em todas as features a serem adicionadas


Implementation Details Template para - Controller - Infra - Entidades - Outros...


Visual Concepts [Include any visual representations or concepts if those are available and applicable.]


Additional Information Estaremos usando Effective GO, clean arch e DDD: https://go.dev/doc/effective_go https://eltonminetto.dev/en/post/2020-07-06-clean-architecture-2years-later/ https://programmingpercy.tech/blog/how-to-domain-driven-design-ddd-golang/
devlefel commented 4 months ago

Criar uma documentação de styleguide baseado nos styleguides que definimos para o projeto:

https://google.github.io/styleguide/go/ https://go.dev/doc/effective_go

Alem disso Documentar como fazer controllers, Models, Usecases, repositories e interfaces.

Alem disso documentar tambem como faremos padrao de roteamento:

Rotas da API

POST /api/v1/users/

GET,PATCH/PUT,DELETE /api/v1/users/{id}

GET,POST, /api/v1/users/{idUser}/addresses

GET,PATCH,DELETE /api/v1/users/1/addresses/1

GET,POST /api/v1/users/1/pets

GET,PATCH,DELETE /api/v1/users/1/pets/2

GET,POST /api/v1/users/1/pets/1/images

GET,PATCH,DELETE /api/v1/users/1/pets/1/images/1

GET,POST /api/v1/users/1/pets/1/vaccines

GET,PATCH,DELETE /api/v1/users/1/pets/1/vaccines/1

GET, POST /api/v1/breeds/

GET,PATCH,DELETE /api/v1/breeds/1
k1nha commented 3 months ago

Infra

Logger

path: infra/config/logger.go

Funcionalidade:

Ferramenta para registrar mensagens durante a execução do programa. Utilidades:

  1. Registro de eventos
  2. Depuração
  3. Monitoramento
Como usar:

Para instanciar o logger em algum lugar da aplicação é necessário usar o package config. Ao topo do arquivo, declare o logger com o escopo do arquivo, vamos considerar um controller:

//

package controllers

import (
    "pet-dex-backend/v2/infra/config"
    ... //imports
)

var logger = config.GetLogger("pet-controller")

... // controller

func (pc *PetController) Create(w http.ResponseWriter, r *http.Request){
    ...
    logger.Error(err)
    logger.Info("Olha lá")
}

O logger tem alguns métodos:

k1nha commented 3 months ago

Pet Controller

Endpoint para pets

1. Criar Pet:

Qual handler?

GET /pets/

Payload:
{
    "name": "Cratos bom de guerra"
}
Response:
{
  "resultado": "sucesso",
  "dados": {
    "informacao1": "valor1",
    "informacao2": "valor2"
  }
}

2. Pegar um pet:

Qual handler?

GET /pet/{id} id: string - UUID

Payload:
no-body
Response:
{
    "name": "Cratos bom de guerra"
}
k1nha commented 3 months ago

Use Cases

Casos de uso para PETS

1. ListUserPets

Paramêtros:
Fluxo:
Repositórios acessados:
Retorno:
AtilaRocha commented 3 months ago

EU QUERO!!!