67 lines
2.0 KiB
Markdown
67 lines
2.0 KiB
Markdown
# مرجع البروتوكول
|
|
|
|
يدعم BaraDB بروتوكولات متعددة للتواصل مع العملاء:
|
|
- **Binary Wire Protocol** — عالي الأداء، منخفض التأخير
|
|
- **HTTP/REST API** — لغةagnostic، سهل التصحيح
|
|
- **WebSocket** — الدفق و pub/sub
|
|
|
|
## Binary Wire Protocol
|
|
|
|
يستخدم ترميز big-endian لجميع القيم متعددة البايت.
|
|
|
|
### دورة الاتصال
|
|
|
|
```
|
|
Client Server
|
|
| |
|
|
|─── TCP connect ──────────────>|
|
|
|─── Auth message ─────────────>|
|
|
|<── Auth_OK / Error ───────────|
|
|
|─── Query message ────────────>|
|
|
|<── Data / Complete / Error ───|
|
|
```
|
|
|
|
### تنسيق الرسالة
|
|
|
|
```
|
|
┌─────────────┬─────────────┬─────────────┬─────────────────────┐
|
|
│ Length │ Type │ Sequence │ Payload │
|
|
│ (4 bytes) │ (1 byte) │ (1 byte) │ (Length - 6 bytes) │
|
|
└─────────────┴─────────────┴─────────────┴─────────────────────┘
|
|
```
|
|
|
|
### أنواع الرسائل
|
|
|
|
| النوع | ID | الوصف |
|
|
|-------|----|-------|
|
|
| Query | 0x01 | تنفيذ استعلام |
|
|
| Insert | 0x02 | إدراج بيانات |
|
|
| Update | 0x03 | تحديث بيانات |
|
|
| Delete | 0x04 | حذف بيانات |
|
|
| Ready | 0x05 | جاهز للامر التالي |
|
|
| Error | 0x06 | استجابة خطأ |
|
|
|
|
## HTTP/REST API
|
|
|
|
Base URL: `http://localhost:9470/api/v1`
|
|
|
|
### نقاط النهاية
|
|
|
|
#### Health
|
|
|
|
```http
|
|
GET /health
|
|
```
|
|
|
|
#### استعلام
|
|
|
|
```http
|
|
POST /query
|
|
{
|
|
"query": "SELECT * FROM users"
|
|
}
|
|
```
|
|
|
|
## WebSocket Protocol
|
|
|
|
URL: `ws://localhost:9471` |