Open devlefel opened 5 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
path: infra/config/logger.go
Ferramenta para registrar mensagens durante a execução do programa. Utilidades:
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:
Endpoint para pets
GET /pets/
{
"name": "Cratos bom de guerra"
}
{
"resultado": "sucesso",
"dados": {
"informacao1": "valor1",
"informacao2": "valor2"
}
}
Qual handler?
GET /pet/{id}
id: string - UUID
no-body
{
"name": "Cratos bom de guerra"
}
Casos de uso para PETS
EU QUERO!!!
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çãoUse Case
Será usado em todas as features a serem adicionadasImplementation 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/