httpserver

package module
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2026 License: MIT Imports: 4 Imported by: 0

README

HTTP API Server


Это полноценный HTTP сервер. Авторизация через JWT. Поддержка ролей и прав доступа. Создание своих сущностей в базе данных через API. CRUDL операции над любыми сущностями.

Технологии

Фреймворк: Gin, gorm

База данных: PostgreSQL

Авторизация: JWT

Документация: Swagger

Установка и запуск
  1. Клонируйте репозиторий:
    git clone https://github.com/UserId56/httpServer
     cd httpServer
    
  2. Установите зависимости:
    go mod download
    
  3. Настройте переменные окружения в файле .env:
    SERVER_DB_HOST=localhost
    SERVER_DB_PORT=5432
    SERVER_DB_USER=your_db_user
    SERVER_DB_PASSWORD=your_db_password
    SERVER_DB_NAME=your_db_name
    SERVER_JWT_SECRET=your_jwt_secret
    
  4. Запустите сервер:
    go run main.go
    
API Endpoints

/user

  • POST /register - Регистрация нового пользователя.
  • POST /login - Вход пользователя и получение JWT токена.
  • GET /profile - Получение профиля текущего пользователя (требуется авторизация).
  • POST / - Создание нового пользователя (требуется авторизация и права доступа).
  • PUT /:id - Обновление информации пользователя по ID (требуется авторизация и права доступа).
  • DELETE /:id - Удаление пользователя по ID (требуется авторизация и права доступа).
  • GET /:id - Получение информации о пользователе по ID (требуется авторизация и права доступа).
  • GET / - Получение списка всех пользователей (требуется авторизация и права доступа).
  • POST /query - Получение списка пользователей по сложному запросу (требуется авторизация и права доступа).

/role

  • POST / - Создание новой роли (требуется авторизация и права доступа).
  • PUT /:id - Обновление информации о роли по ID (требуется авторизация и права доступа).
  • DELETE /:id - Удаление роли по ID (требуется авторизация и права доступа).
  • GET /:id - Получение информации о роли по ID (требуется авторизация и права доступа).
  • GET / - Получение списка всех ролей (требуется авторизация и права доступа).
  • POST /query - Получение списка ролей по сложному запросу (требуется авторизация и права доступа).

/schema

  • POST / - Создание новой схемы сущности (требуется авторизация и права доступа).
  • PUT /:name - Обновление информации о схеме сущности по ID (требуется авторизация и права доступа).
  • DELETE /:name - Удаление схемы сущности по ID (требуется авторизация и права доступа).
  • GET / - Получение списка всех схем сущностей (требуется авторизация и права доступа).
  • GET /:name - Получение информации о схеме сущности по имени (требуется авторизация и права доступа).

/{object}

  • POST / - Создание новой сущности указанного типа (требуется авторизация и права доступа).
  • PUT /:id - Обновление информации о сущности по ID (требуется авторизация и права доступа).
  • DELETE /:id - Удаление сущности по ID (требуется авторизация и права доступа).
  • GET /:id - Получение информации о сущности по ID (требуется авторизация и права доступа).
  • GET / - Получение списка всех сущностей указанного типа (требуется авторизация и права доступа).
  • POST /query - Получение списка сущностей по сложному запросу (требуется авторизация и права доступа).
Лицензия

Этот проект лицензирован под лицензией MIT. Подробности см. в файле LICENSE.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ServerInit

func ServerInit(plugins []Plugin, wg *sync.WaitGroup, cfg Config)

ServerInit - публичная точка входа, просто вызывает core.ServerInit. Позволяет импортировать github.com/UserId56/httpServer и вызывать httpserver.ServerInit(...) из других проектов.

Types

type Config

type Config = models.Config

type Plugin

type Plugin = coreplugins.Plugin

Реэкспорт типов для удобства импорта из внешних проектов.

Directories

Path Synopsis
core module

Jump to

Keyboard shortcuts

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