# FikoYT FreeCAD API - Hızlı Başlangıç

## 1. Docker Build & Run

```bash
# Docker klasörüne git
cd "d:\__sistem__\Masaustu\FikoYT.Yeni.Cag\docker\fikoyt-sunucu"

# Build (ilk çalıştırmada ~10-15 dakika sürebilir)
docker-compose build

# Başlat
docker-compose up -d

# Logları izle
docker-compose logs -f
```

## 2. Test Endpoints

### Health Check (FreeCAD API)
```bash
curl http://localhost:8081/health
```

Beklenen yanıt:
```json
{
  "status": "ok",
  "service": "FreeCAD API Server",
  "version": "1.0.0"
}
```

### Health Check (Go Proxy)
```bash
curl http://localhost:9000/uyar/api/freecad/health
```

### Malzeme Listesi
```bash
curl http://localhost:9000/uyar/api/freecad/materials
```

### STEP Dosya Analizi
```bash
# Test STP dosyanız varsa
curl -X POST http://localhost:9000/uyar/api/freecad/analyze \
  -F "file=@your_model.stp" \
  -F "material=aluminium"
```

## 3. Sorun Giderme

### Container çalışıyor mu?
```bash
docker-compose ps
```

### Python API çalışıyor mu?
```bash
# Container içine gir
docker exec -it fikoyt-sunucu /bin/bash

# Python API loglarını kontrol et
cat /var/log/freecad_api.log

# Python API manuel test
cd /app/python_scripts
python3 freecad_api_server.py
```

### Go API çalışıyor mu?
```bash
# Go loglarını kontrol et
docker-compose logs fikoyt-sunucu | grep -i "fiber"
```

### Start.sh kontrolü
```bash
# Container içinde
docker exec -it fikoyt-sunucu /bin/bash
cat /app/start.sh
ls -la /app/start.sh
```

## 4. Yeniden Başlatma

```bash
# Durdur
docker-compose down

# Temiz başlatma (volumes dahil)
docker-compose down -v

# Rebuild + Start
docker-compose build --no-cache
docker-compose up -d
```

## 5. Dosya Yapısı Kontrolü

```bash
# Host üzerinde
ls -la "d:\__sistem__\Masaustu\FikoYT.Yeni.Cag\Python"
# Beklenen: free.py, freecad_api_server.py

# Container içinde
docker exec -it fikoyt-sunucu ls -la /app/python_scripts
# Beklenen: free.py, freecad_api_server.py (volume mount)
```

## 6. Port Kontrolü

- **9000**: Go Fiber API (Ana API)
- **8081**: Python Flask FreeCAD API (Internal)

```bash
# Windows'ta portları kontrol et
netstat -ano | findstr "9000"
netstat -ano | findstr "8081"
```

## 7. Başarılı Çalışma Göstergeleri

### Container Loglarında Görmeli:
```
FreeCAD API Server - FikoYT
Port        : 8081
Debug       : False

Fiber v3.x.x
PORT=9000
```

### Health Check Başarılı:
```bash
curl http://localhost:8081/health
# {"status":"ok",...}

curl http://localhost:9000/uyar/api/freecad/health
# {"durum":{"kodu":200,"tamamlandi":true},...}
```

## 8. Örnek STEP Dosya Testi

FreeCAD test dosyası oluşturma (basit küp):
```python
# test_cube.py
import FreeCAD
import Part

doc = FreeCAD.newDocument("Test")
cube = Part.makeBox(100, 50, 25)
obj = doc.addObject("Part::Feature", "Cube")
obj.Shape = cube
Part.export([obj], "test_cube.stp")
FreeCAD.closeDocument("Test")
```

Ardından test et:
```bash
curl -X POST http://localhost:9000/uyar/api/freecad/analyze \
  -F "file=@test_cube.stp" \
  -F "material=aluminium"
```

## Hata Durumları

| Hata | Çözüm |
|------|-------|
| `cannot connect to daemon` | Docker Desktop'ın çalıştığından emin olun |
| `port already allocated` | Port 9000 veya 8081 kullanımda, docker-compose.yml'de değiştirin |
| `no such file: start.sh` | start.sh dosyasının merkez.go-server.com/ içinde olduğundan emin olun |
| `Python API down` | `/var/log/freecad_api.log` loglarını kontrol edin |
| `FreeCAD not found` | Docker build sırasında FreeCAD kurulumu başarısız, rebuild edin |

## İletişim

Sorunlar için: `docker-compose logs -f` çıktısını kontrol edin
