Skip to content

hzKamburga/Nodejs_RobloxAPI-Server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Roblox Fastify Server 🚀

Modüler ve Profesyonel - HarmonyDB ile Roblox isteklerini kaydeden Node.js Fastify sunucusu.

📁 Proje Yapısı

roblox-fastify-server/
├── src/                    # Kaynak kodlar
│   ├── config/            # Yapılandırma dosyaları
│   │   └── database.js    # HarmonyDB ayarları
│   ├── routes/            # API endpoint'leri
│   │   └── log.js         # Log route'ları
│   └── app.js             # Ana Fastify uygulaması
├── examples/              # Kullanım örnekleri
│   └── roblox/           # Roblox Lua örnekleri
│       ├── localscript.lua
│       ├── serverscript.lua
│       └── README.md
├── data/                  # Veritabanı dosyaları (otomatik)
│   └── requests.json
├── index.js               # Giriş noktası
├── package.json
├── .gitignore
└── README.md

🚀 Hızlı Başlangıç

1. Kurulum

# Bağımlılıkları yükle
npm install

2. Sunucuyu Başlat

# Normal mod
npm start

# Geliştirme modu (auto-reload)
npm run dev

Sunucu http://localhost:3000 adresinde çalışacaktır.

📍 API Endpoint'leri

GET /

Ana sayfa - Sunucu durumu ve son istek bilgisi

Yanıt:

{
  "message": "Roblox Fastify Sunucusu Çalışıyor! 🚀",
  "totalRequests": 42,
  "lastRequest": { ... }
}

POST /log

Roblox'tan gelen istekleri kaydet

İstek:

{
  "userId": 123456,
  "username": "Player1",
  "message": "Merhaba!"
}

Yanıt:

{
  "success": true,
  "message": "İstek kaydedildi!",
  "id": 1
}

GET /log?param1=value1

Test isteği kaydet (GET parametreleri ile)

GET /requests?limit=10

Son N isteği listele (varsayılan: 10)

Yanıt:

{
  "total": 100,
  "showing": 10,
  "requests": [ ... ]
}

GET /stats

İstatistikleri görüntüle

Yanıt:

{
  "totalRequests": 100,
  "todayRequests": 25,
  "firstRequest": "2024-01-01T12:00:00.000Z",
  "lastRequest": "2024-01-01T18:30:00.000Z"
}

DELETE /requests

Tüm kayıtlı istekleri temizle

🎮 Roblox Entegrasyonu

Hızlı Kullanım

  1. examples/roblox/ klasöründen uygun script'i seçin
  2. Script'i Roblox Studio'da ilgili konuma kopyalayın
  3. SERVER_URL değişkenini kendi sunucu adresinizle değiştirin
  4. Game Settings → Security → "Allow HTTP Requests" açın

Detaylı kullanım için: examples/roblox/README.md

Örnek Kullanım

LocalScript:

local HttpService = game:GetService("HttpService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer

local data = {
    userId = player.UserId,
    username = player.Name,
    message = "Oyuna katıldı!"
}

HttpService:PostAsync(
    "http://localhost:3000/log",
    HttpService:JSONEncode(data),
    Enum.HttpContentType.ApplicationJson
)

📊 Özellikler

  • Modüler Yapı - Kolay genişletilebilir ve bakımı yapılabilir
  • HarmonyDB Entegrasyonu - Otomatik veri kaydetme
  • Detaylı Loglama - Konsola tüm istekleri yazdırma
  • RESTful API - Standart HTTP metodları
  • CORS Desteği - Cross-origin isteklere izin
  • Zaman Damgası - Her istek için otomatik timestamp
  • IP Kaydı - İstek yapan IP adresini kaydet
  • Roblox Örnekleri - Kullanıma hazır Lua script'leri

💾 Veri Saklama

Tüm istekler data/requests.json dosyasında saklanır. HarmonyDB otomatik olarak:

  • Değişiklikleri kaydeder (auto-save)
  • JSON formatını güzel tutar (pretty print)
  • Debounce ile performans optimize eder (100ms)

🔍 Konsol Çıktısı

Sunucu her istek geldiğinde detaylı bilgi yazdırır:

📥 YENİ İSTEK GELDİ:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🆔 ID: 1
⏰ Zaman: 2024-01-01T12:00:00.000Z
📍 IP: 127.0.0.1
📦 Data: {
  "userId": 123456,
  "username": "Player1",
  "message": "Merhaba!"
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

⚙️ Yapılandırma

Port Ayarları

Sunucu varsayılan olarak 0.0.0.0:3000 adresinde çalışır. Farklı bir port kullanmak için index.js dosyasını düzenleyebilirsiniz.

Roblox HTTP Ayarları

ÖNEMLİ: Roblox'ta HTTP istekleri yapabilmek için:

  1. Roblox Studio'da oyununuzu açın
  2. Home → Game Settings
  3. Security sekmesi
  4. "Allow HTTP Requests" → AÇIK

🛠️ Geliştirme

Yeni Route Ekleme

src/routes/ klasörüne yeni route dosyası ekleyin:

// src/routes/custom.js
export function setupCustomRoutes(fastify, db, dbManager) {
  fastify.get('/custom', async (request, reply) => {
    return { message: 'Custom route!' };
  });
}

src/app.js içinde import edin:

import { setupCustomRoutes } from './routes/custom.js';
setupCustomRoutes(fastify, db, dbManager);

📦 Bağımlılıklar

  • fastify - Hızlı web framework
  • @fastify/cors - CORS desteği
  • harmonydb - Basit JSON veritabanı
  • pino-pretty - Güzel log çıktısı

📝 Notlar

  • Sunucu 0.0.0.0:3000 adresinde dinler (tüm network interface'lerden erişilebilir)
  • HarmonyDB Magic Proxy API kullanılır
  • Otomatik kaydetme 100ms debounce ile aktiftir
  • Roblox HTTP istekleri için game settings'de izin gereklidir

📄 Lisans

ISC

🤝 Katkıda Bulunma

Pull request'ler kabul edilir. Büyük değişiklikler için önce issue açın.


Made with ❤️ for Roblox developers

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published