👨💻 REST API example, built by following Uncle Bob’s clean architecture principles
Example that shows core principles of the Clean Architecture in Golang projects.
More on topic can be found here.
REST API with custom JWT-based authentication system. Core functionality is about creating and managing bookmarks (Simple clone of Pocket).
4 Domain layers:
Creates new user
{
"username": "UncleBob",
"password": "cleanArch"
}
Request to get JWT Token based on user credentials
{
"username": "UncleBob",
"password": "cleanArch"
}
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NzEwMzgyMjQuNzQ0MzI0MiwidXNlciI6eyJJRCI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIlVzZXJuYW1lIjoiemhhc2hrZXZ5Y2giLCJQYXNzd29yZCI6IjQyODYwMTc5ZmFiMTQ2YzZiZDAyNjlkMDViZTM0ZWNmYmY5Zjk3YjUifX0.3dsyKJQ-HZJxdvBMui0Mzgw6yb6If9aB8imGhxMOjsk"
}
Creates new bookmark
{
"url": "https://github.com/zhashkevych/go-clean-architecture",
"title": "Go Clean Architecture example"
}
Returns all user bookmarks
{
"bookmarks": [
{
"id": "5da2d8aae9b63715ddfae856",
"url": "https://github.com/zhashkevych/go-clean-architecture",
"title": "Go Clean Architecture example"
}
]
}
Deletes bookmark by ID:
{
"id": "5da2d8aae9b63715ddfae856"
}
Use make run
to build and run docker containers with application itself and mongodb instance