This is example of how to structure your golang project article with fiber and standard mysql (you can change it to whatever framework and persistence libraries you like, the structure should still be similar).
This is example how to do these things:
- Web page
- Form
- API / CRUD
- MySQL
- Fiber without ORM
- DockerTest
- AutoGold
This aproach doesn't do clean architecture (since the persistence layer is not injected), but the business logic is pure/should not contain transport/serialization. the model itself depends on real persistence and tested using dockertest, so it should always works and testable even without function injection or dependency injection. The cons of this aproach is the test is slower because it have to spawn a docker fist.
docker-compose up
air
mysql -u root -h 127.0.0.1 -p
CREATE DATABASE test1;
make test
cd business
go test -update .
curl -X POST -d 'email=b@gmail.com&password=test&name=Kis' http://127.0.0.1:3000/guest/register
curl -X POST -H 'content-type: application/json' -d '{"email":"c@gmail.com","password":"test","name":"Kis"}' http://127.0.0.1:3000/guest/register