Categorygithub.com/kk7453603/user_RESTfull_API
module
0.0.0-20240316224008-7536728842e8
Repository: https://github.com/kk7453603/user_restfull_api.git
Documentation: pkg.go.dev

# README

Golang Gin clean architecture RESTfull API

Stack: gin+mongodb

Правила чистой архитектуры:

  • Независимость от фреймворков. Архитектура не зависит от существования какой-либо библиотеки функционального программного обеспечения. Это позволяет вам использовать такие платформы в качестве инструментов, вместо того, чтобы загонять вашу систему в их ограниченные ограничения.
  • Тестируемость. Бизнес-правила можно тестировать без пользовательского интерфейса, базы данных, веб-сервера или любого другого внешнего элемента.
  • Независимость от пользовательского интерфейса. Пользовательский интерфейс можно легко изменить, не меняя остальную часть системы. Веб-интерфейс можно заменить, например, консольным интерфейсом без изменения бизнес-правил.
  • Независимость от базы данных. Вы можете заменить Oracle или SQL Server на Mongo, BigTable, CouchDB или что-то еще. Ваши бизнес-правила не привязаны к базе данных.
  • Независимость от каких-либо внешних факторов. На самом деле ваши бизнес-правила просто ничего не знают о внешнем мире.

Описание проекта:

REST API со специальной системой аутентификации на основе JWT. Основная функциональность заключается в создании закладок и управлении ими.

Структура

4 Базовых слоя:

  • Models layer
  • Repository layer
  • UseCase layer
  • Delivery layer

API Endpoints:

POST /auth/sign-up
Создает нового пользователя
Пример входных данных:

{
	"username": "Vasya",
	"password": "cleanArch"
} 

POST /auth/sign-in
Создает запрос на получение токена JWT на основе учетных данных пользователя
Пример входных данных:

{
	"username": "Vasya",
	"password": "cleanArch"
} 

Пример ответа:

{
	"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NzEwMzgyMjQuNzQ0MzI0MiwidXNlciI6eyJJRCI6IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIlVzZXJuYW1lIjoiemhhc2hrZXZ5Y2giLCJQYXNzd29yZCI6IjQyODYwMTc5ZmFiMTQ2YzZiZDAyNjlkMDViZTM0ZWNmYmY5Zjk3YjUifX0.3dsyKJQ-HZJxdvBMui0Mzgw6yb6If9aB8imGhxMOjsk"
} 

POST /api/bookmarks
Создает новую закладку
Пример входных данных:

{
	"url": "https://go.dev",
	"title": "Go Clean Architecture example"
} 

GET /api/bookmarks
Возвращает все закладки пользователя
Пример входных данных:

{
	"bookmarks": [
            {
                "id": "5da2d8aae9b63715ddfae856",
                "url": "https://go.dev",
                "title": "Go Clean Architecture example"
            }
    ]
} 

DELETE /api/bookmarks
Удаляет закладку по ID
Пример входных данных:

{
	"id": "5da2d8aae9b63715ddfae856"
} 

Запуск проекта

Исрользуйте make run для создания и запуска Docker-контейнеров с самим приложением и экземпляром mongodb

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author