/hexa-go

REST API to manage Products following clean code / hexagonal architectures

Primary LanguageGoMIT LicenseMIT

HEXA-GO

A reference implementation of a REST API that follows a clean code / hexagonal architecture implementation.

This project is still under active development. Roadmap is listed below.

Context

I am an experienced developer in many languages but I have only started to use Go recently. As someone who has experience with Web Development I was expecting that Go would enforce some folder structure. This was always coming back to me but wasn't impacting anything I was doing so I kind of delayed investigating a proper way to do it. But once I started to implement clean code / hexagonal architecture in some microservices it became kind of a blocker.

I tried to look for recomendations and guidelines, and although there are a lot of examples out there I haven't found ONE that matches the other. Because of that I tried to simplify it and implement a folder structure that allows me to easily implement this pattern in all my microservices - independent of their complexity - and keep it readable for any (new) developer contributing to the service.

Roadmap (missing features)

  • Implement capacity to update existing items
  • Unit Tests
  • More Adapters ...