Фреймворк для серверной разработки, разработанный обществом AlertWeb
Легко настраивайте кластеры серверов для высокой нагрузки.
Отслеживайте производительность в реальном времени.
Быстрая разработка REST и GraphQL API.
Встроенная поддержка JWT, защита от DDoS и многое другое.
Интеграция с облачными платформами и кластерными средами.
Обработка тысяч запросов в секунду с минимальными задержками.
GET /api/v1/resources HTTP/1.1 Host: api.goweb.com Authorization: Bearer <TOKEN>
{ "status": "success", "data": { "id": 1, "name": "Example", "description": "Sample data" } }
Компонент | Требование |
---|---|
ОС | Linux (Alma Linux 8/9, Ubuntu-20.04+), macOS, Windows |
Go | 1.22+ |
База данных | MySQL-5.7+, MariaDB-10+ (рекомендуется) |
Память | 1 ГБ или больше |
Процессор | Современный двухъядерный процессор от 1.70 GHz |
GoWeb превосходит другие популярные фреймворки по скорости обработки запросов и времени отклика.
Код | Описание |
---|---|
200 | OK — Запрос выполнен успешно |
201 | Created — Ресурс создан успешно |
400 | Bad Request — Ошибка в запросе |
401 | Unauthorized — Необходима авторизация |
403 | Forbidden — Доступ запрещён |
404 | Not Found — Ресурс не найден |
500 | Internal Server Error — Ошибка сервера |
503 | Service Unavailable — Сервис временно недоступен |
Файл config.yml
используется для настройки параметров приложения, базы данных, логов, сервера и других модулей.
app: port: 8080 environment: production database: host: "localhost" port: 3306 user: "root" password: "" dbname: "goweb" log: file: "logs/app.log" # Путь к файлу логов level: "info" # Уровень логирования: debug, info, warn, error, fatal, panic server: agent_download_url: "https://example.com/agent" # URL для загрузки бинарного файла агента agent_port: 8080 max_body_size: 1048576 # 1MB rate_limit: 100 # запросов в секунду enable_https: false cert_file: "certs/server.crt" key_file: "certs/server.key" read_timeout: 10 # Таймаут чтения (сек) write_timeout: 10 # Таймаут записи (сек) idle_timeout: 30 # Таймаут для idle соединений (сек) cors: allow_origins: - "*" allow_methods: - "GET" - "POST" - "PUT" - "DELETE" - "OPTIONS" allow_headers: - "Content-Type" - "Authorization" - "X-Requested-With" blocked_ips: # Заблокированные IP - "8.8.8.8" allowed_user_agents: - "Mozilla/5.0" - "Chrome/" - "Safari/" - "Firefox/" - "Edge/" - "Opera/" - "PostmanRuntime/" - "python-requests/" - "Java/" - "curl/" - "Go-http-client/" - "Wget/" - "Insomnia/" enable_geoip: false # Отключить GeoIP (по умолчанию) geoip_db: "geoip/GeoLite2-Country.mmdb" # Путь к базе GeoIP allowed_countries: # Разрешённые страны - "US" - "CA" max_connections: 100 # Одновременные соединения jwt_key: "your_secret_key" allow_public_registration: true backup: enabled: true # Включить/выключить резервное копирование path: "./backups" # Путь для резервных копий interval: 24 # Интервал резервного копирования в часах
Пример файла конфигурации для приложения, развернутого в production-среде: