Proje Nedir?
Proje Kavramı
API Proxy'lerin mantıksal olarak gruplandırılması
Proje bazlı kullanıcı ve rol yönetimi
Ekip üyelerinin birlikte çalışması
Projeler arası veri ve ayar izolasyonu
Proje Yapısı
Aşağıdaki diyagram, projenin ne içerdiğini high-level olarak gösterir:
flowchart TD
Project[📁 Proje<br/>Mantıksal Organizasyon Birimi]
Project --> APIProxies[API Proxy'ler<br/>API Yapılandırmaları]
Project --> Policies[Politikalar<br/>Güvenlik, Trafik, Dönüştürme]
Project --> Connections[Bağlantılar<br/>Veritabanı, Mesaj Kuyruğu]
Project --> Connectors[Konnektörler<br/>Entegrasyon Bileşenleri]
Project --> Variables[Değişkenler<br/>Ortam Değişkenleri]
Project --> Settings[Ayarlar<br/>CORS, Timeout, Hata Mesajları]
Project --> Members[Üyeler<br/>Project Owner, Yönetici,<br/>Geliştirici, Görüntüleyici]
Project --> GatewayPath[Geçit Adresi<br/>Relative Path Ön-eki]
style Project fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style APIProxies fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style Policies fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style Connections fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style Connectors fill:#fce4ec,stroke:#c2185b,stroke-width:2px
style Variables fill:#fff9c4,stroke:#f9a825,stroke-width:2px
style Settings fill:#f5f5f5,stroke:#616161,stroke-width:2px
style Members fill:#e1f5ff,stroke:#0277bd,stroke-width:2px
style GatewayPath fill:#f1f8e9,stroke:#558b2f,stroke-width:2px
Proje ve Ortam İlişkisi
Aşağıdaki diyagram, proje ve ortam kavramlarının ilişkisini gösterir:
flowchart TB
Project[📁 Proje<br/>Mantıksal Organizasyon Birimi<br/>Hangi API'ler birlikte çalışır?]
Project --> API1[Product API]
Project --> API2[Order API]
Project --> API3[Payment API]
API1 -->|Deploy| DevEnv[🔵 Development Ortamı<br/>v1.0]
API1 -->|Deploy| TestEnv[🟡 Test Ortamı<br/>v1.1]
API1 -->|Deploy| ProdEnv[🟢 Production Ortamı<br/>v1.2]
API2 -->|Deploy| DevEnv
API2 -->|Deploy| TestEnv
API2 -->|Deploy| ProdEnv
API3 -->|Deploy| DevEnv
API3 -->|Deploy| TestEnv
API3 -->|Deploy| ProdEnv
DevEnv -.->|Fiziksel/Kaynak Birimi| EnvNote[🌍 Ortam<br/>API'ler nerede çalışır?<br/>Kubernetes Namespace]
TestEnv -.-> EnvNote
ProdEnv -.-> EnvNote
style Project fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style API1 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style API2 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style API3 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style DevEnv fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style TestEnv fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style ProdEnv fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style EnvNote fill:#f5f5f5,stroke:#616161,stroke-width:2px,stroke-dasharray: 5 5
Proje Özellikleri
Proje İçeriği
Bir proje şunları içerebilir:
- API Proxy'ler: Projeye ait tüm API Proxy'ler
- Politikalar: Projeye özel politika tanımları
- Bağlantılar: Veritabanı, mesaj kuyruğu vb. bağlantılar
- Konnektörler: Entegrasyon konnektörleri
- Değişkenler: Proje seviyesinde değişkenler
- Geçit Adresi (Relative Path): Proje içindeki tüm API Proxy'lerin geçit adreslerinin başlayacağı ön-ek. Örneğin, proje geçit adresi "account" olduğunda API proxy geçit adresi
/account/proxy1şeklinde görünür. - Ayarlar: Projeye özgü konfigürasyonlar
Apinizer, ilk kurulumda bir Varsayılan (default) proje sağlar. Bu Varsayılan proje düzenlenemez veya silinemez.
Proje Yönetimi
Proje Oluşturma
Yeni bir proje oluştururken şu bilgiler tanımlanır:
- Proje Adı: Projeyi tanımlayan benzersiz isim
- Geçit Adresi'ni Aktive Et: Proje içerisinde yer alan tüm geçit adreslerinde ortak bir ön-ek kullanılmak isteniyorsa aktif hale getirilir
- Geçit Adresi (Relative Path): Projenin içinde tanımlanacak tüm API Proxy'lerin geçit adreslerinin başlayacağı ön-ek ifadesi. Sistem tarafından otomatik bir UUID verilir
- Açıklama: Projenin amacı ve kapsamı
- Üyeler: Projeye erişimi olan kullanıcılar ve rolleri
- Görünürlük: Projenin görünürlük ayarları
Bir proje iki şekilde oluşturulabilir:
- Yeni (Create): Yeni bir proje tanımlaması
- Proje Yükle (Import Project): Mevcut bir proje konfigürasyon dosyası üzerinden proje yükleme
Detaylı proje oluşturma ve yönetimi için Proje Yönetimi sayfasına bakabilirsiniz.
Proje Üyeleri ve Rolleri
Her projede farklı rollere sahip üyeler bulunabilir:
- Project Owner: Projenin sahibi. Projeyi yönetme, düzenleme ve silme yetkisi. Eğer Project Owner rolüne sahip kullanıcı projeden silinirse, Admin kullanıcısı otomatik olarak Project Owner olur.
- Proje Yöneticisi: Projeyi yönetme yetkisi
- Geliştirici: API Proxy oluşturma ve düzenleme yetkisi
- Görüntüleyici: Sadece görüntüleme yetkisi
Bu roller, proje bazlı erişim kontrolü sağlar.
Proje ve Ortam İlişkisi
Projeler ve ortamlar farklı kavramlardır:
- Proje: Mantıksal organizasyon birimi (hangi API'ler birlikte çalışır?)
- Ortam: Fiziksel/kaynak birimi (API'ler nerede çalışır?)
Bir projedeki API Proxy'ler farklı ortamlara yüklenebilir:
Proje: E-Ticaret API'leri
├─ Development Ortamı
│ ├─ Product API v1.0
│ └─ Order API v1.0
├─ Test Ortamı
│ ├─ Product API v1.1
│ └─ Order API v1.1
├─ Sandbox Ortamı
│ ├─ Product API v1.2
│ └─ Order API v1.2
└─ Production Ortamı
├─ Product API v1.2
└─ Order API v1.2
Ortam oluştururken, ortamın hangi projelerde kullanılabileceği belirlenebilir. Eğer proje seçimi boş bırakılırsa, ortam tüm projelerde kullanılabilir. Proje seçilmesi durumunda sadece o proje içerisinde yer alan API Proxy'lerin bu ortama deploy edilebileceği anlamına gelir.
Proje Kullanım Senaryoları
Farklı ekiplerin kendi projelerinde çalışması. Örneğin:
- E-Ticaret Ekibi → E-Ticaret Projesi
- Ödeme Ekibi → Ödeme Projesi
- Raporlama Ekibi → Raporlama Projesi
Farklı müşteriler için ayrı projeler. Örneğin:
- M üşteri A → Müşteri A Projesi
- Müşteri B → Müşteri B Projesi
Farklı ürünler için ayrı projeler. Örneğin:
- Mobil Uygulama → Mobil API Projesi
- Web Uygulama → Web API Projesi
Farklı API versiyonları için ayrı projeler. Örneğin:
- API v1 → API v1 Projesi
- API v2 → API v2 Projesi
Proje İşlemleri
Proje Export/Import
Projeler export edilerek başka ortamlara veya sistemlere taşınabilir:
- Export: Projenin tüm içeriğini JSON/YAML formatında dışa aktarma
- Import: Dışa aktarılan projeyi başka bir ortama veya sisteme aktarma
- Cross-Environment Migration: Projelerin farklı ortamlar arasında taşınması
Proje Şablonları
Sık kullanılan proje yapılandırmaları şablon olarak kaydedilebilir ve yeni projeler oluştururken kullanılabilir.
Proje Silme
Proje silme işlemi, Project Owner veya Sistem Yöneticisi rolüne sahip kullanıcılar tarafından gerçekleştirilebilir.
Önemli: Bir projeyi sildiğiniz zaman o projeye ait olan tüm varlıklar (API Proxy'ler, Bağlantı Konfigürasyonları, Kimlik Bilgileri bilgileri vs) ve konfigürasyon bilgileri silinecektir. Bu işlem geri alınamaz.
Varsayılan (default) proje silinemez veya düzenlenemez.