Arquitetura hexagonal: Como implementar ports

Dando continuidade à série de posts sobre arquitetura hexagonal, nesse post implementaremos os ports do package category.

Se você está chegando agora ou se gostaria de relembrar, até o momento nós já:

Ports para atores Driven

Como é através de ports que o core da aplicação se comunicará com o mundo externo e, os atores do tipo driven são chamados a partir do core, a primeira coisa que vamos fazer é definir uma interface para esse tipo de ator.

type Repository interface {
	FindAll() ([]*Category, error)
	FindById(id string) (*Category, error)
	Save(category *Category) error
	Delete(id string) error
}
Leia mais »

Criando uma API REST em minutos com pREST

Nesse post vou falar um pouco sobre um dos projetos open source que contribuo, o pREST.

O pREST cria uma api REST expondo as tabelas de um banco postgres de forma rápida, fácil e com uma boa performance.

Embora essa prática pareça um pouco estranha e insegura, para alguns casos ela serve muito bem. Um exemplo seria um serviço interno para sua intranet ou como um micro serviço de CRUD.

Só para deixar bem claro, quando digo que parece insegura, não é que o pREST não trate questões como SQL Injection, mas sim o fato de expor todo um banco e suas tabelas de forma nua e crua.

Leia mais »