Skip to content

Сохранение текста с curl запросов

Notifications You must be signed in to change notification settings

Makhkets/interceptor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Сервис обработки текста ⚙️

Go Version License: MIT SQLite

Современный микросервис для обработки текста с мониторингом состояния и постоянным хранилищем. Создан с ❤️ на Go!

curl -X POST -H "Content-Type: text/plain" --data "Ваш секретный текст... 🤫"

🌟 Возможности

Мгновенная проверка состояния сервера
GET /health{"status": "server is running"}

Умная обработка текста
Сохранение любых текстовых данных с автоматическим логированием IP клиента.

🔒 Хранилище на основе SQLite
Постоянное хранение данных с автоматическим управлением схемой.

📊 Структурированное логирование
Красивые логи с использованием slog для наблюдаемости.


🚀 Начало работы

🔧 Необходимые зависимости

⚡ Быстрая установка

git clone https://github.com/makhkets/interceptor
cd interceptor
go mod tidy
sqlite3 storage/database.db < schema.sql

🏃 Запуск сервера

go run main.go

Сервер запустится по адресу http://localhost:80 🎉


📚 Документация API

🩺 Проверка состояния

GET /health

Ответ:

{"status": "server is running"}

💌 Обработка текста

POST /steal
Content-Type: text/plain

Ваш конфиденциальный текст...

Успешный ответ:

Data saved successfully

📂 Структура проекта

Проект построен на Go и включает в себя модули для обработки текста, логирования и работы с базой данных.

Project:
│   📜 go.mod              # Модульные зависимости Go
│   📜 go.sum              # Контрольная сумма зависимостей
│   🚀 main.go             # Главная точка входа
│   🛠️ makefile            # Скрипты сборки и команд
│   📖 README.md           # Документация проекта
│
├── 🏗️ build/               # Собранные бинарные файлы
│   │   ⚙️ interceptor.exe  # Исполняемый файл сервиса
│   │
│   └── 🗄️ storage/
│           🛢️ database.db  # Файл базы данных SQLite
│
├── 📦 gen/                 # Сгенерированный код OpenAPI
│   │   📜 api.yaml         # OpenAPI спецификация
│   │   🛠️ generate.go      # Скрипт генерации
│   │
│   └── 📂 interceptor/
│           🛠️ oas_cfg_gen.go
│           🛠️ oas_client_gen.go
│           🛠️ oas_handlers_gen.go
│           🛠️ oas_interfaces_gen.go
│           🛠️ oas_json_gen.go
│           🛠️ oas_labeler_gen.go
│           🛠️ oas_middleware_gen.go
│           🛠️ oas_operations_gen.go
│           🛠️ oas_request_decoders_gen.go
│           🛠️ oas_request_encoders_gen.go
│           🛠️ oas_response_decoders_gen.go
│           🛠️ oas_response_encoders_gen.go
│           🛠️ oas_router_gen.go
│           🛠️ oas_schemas_gen.go
│           🛠️ oas_server_gen.go
│           🛠️ oas_unimplemented_gen.go
│
├── 🔧 internal/            # Внутренние модули проекта
│   ├── 📂 domain/
│   │   └── 📝 model.go     # Определение моделей данных
│   │
│   ├── 📂 lib/             # Библиотеки
│   │   └── 📂 logger/      # Логирование
│   │       │   📜 logs.log      # Файл логов
│   │       │   🛠️ setup.go      # Настройка логов
│   │       │
│   │       ├── 📂 handlers/
│   │       │   ├── 🗑️ slogdiscard/
│   │       │   │   └── 🛠️ slogdiscard.go
│   │       │   │
│   │       │   └── 🎨 slogpretty/
│   │       │       └── 🛠️ slogpretty.go
│   │       │
│   │       └── 🛠️ sl/
│   │           └── 🛠️ sl.go
│   │
│   ├── 📂 migrations/      # Миграции базы данных
│   │   └── 📜 2_init.up.sql
│   │
│   ├── 📂 pkg/             # Пакеты вспомогательных функций
│   │   └── 📂 directories/
│   │       └── 🛠️ util.go
│   │
│   ├── 📂 server/          # Логика работы сервера
│   │   └── 🌍 server.go
│   │
│   └── 📂 storage/         # Работа с базой данных
│       │   🛠️ init.go
│       │
│       └── 📂 sqlite/
│           └── 🛢️ db.go
│
├── 🔄 migrator/            # Миграция базы данных
│   └── 🛠️ main.go
│
└── 🗄️ storage/              # Хранилище базы данных
    └── 🛢️ database.db

📌 эмодзи:

  • 📂 — Папка
  • 📜 — Файл конфигурации
  • 🛠️ — Кодовая логика
  • 🛢️ — База данных
  • 🌍 — Сервер
  • 🎨 — UI/красивый вывод
  • 🗑️ — Игнорируемый/ненужный лог
  • 🔄 — Миграция базы данных

🛠️ Примеры использования

📩 Обработка текста

curl -X POST http://localhost/steal \
  -H "Content-Type: text/plain" \
  -d "Мой секретный рецепт: 1 чашка магии ✨"

✅ Проверка состояния

curl http://localhost/health
# {"status":"server is running"}

🔍 Схема базы данных

CREATE TABLE IF NOT EXISTS logs (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    text TEXT NOT NULL,
    remote_address TEXT NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

💠 Пример логов

2023/10/15 12:00:00 INFO server is running on :80
2023/10/15 12:00:05 INFO received text from 127.0.0.1 length=42

About

Сохранение текста с curl запросов

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published