user_RESTfull_API

module
v0.0.0-...-7536728 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2024 License: MIT

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL