API Dokümantasyonu
Venis Sanal Deneme'yi uygulamanıza entegre etmek için eksiksiz referans.
Giriş
Venis API, güçlü yapay zeka destekli sanal deneme yetenekleri sunar. Bir model görüntüsü ile bir kıyafet görüntüsünü birleştirerek kıyafetlerin modeller üzerinde gerçekçi bir şekilde görselleştirilmesini sağlar.
Kimlik Doğrulama
Tüm API istekleri (sağlık kontrolleri hariç) HTTP başlıklarında bir API anahtarı gerektirir.
Başlık Formatı
Başlık Adı: X-API-Key
Değer: Size özel API anahtarınız.
X-API-Key: venis_live_xyz123...Temel URL
https://platformapi.venis.appUç Noktalar
Sanal Deneme
Metod: POST
Uç Nokta: /v1/tryon
Bir sanal deneme isteğini işler. Bir kişi resmi ve bir kıyafet resmi alır ve kişiyi o kıyafeti giymiş olarak döndürür.
İstek Gövdesi
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| image1_base64 | string | Evet | Kişinin base64 kodlu resmi. |
| image2_base64 | string | Evet | Kıyafetin base64 kodlu resmi. |
| category | string | Evet | Kıyafet kategorisi (örn. "dresses", "tops", "bottoms"). Yapay zeka işlemesini optimize etmeye yardımcı olur. |
Yanıt
{
"success": true,
"image_base64": "iVBORw0KGgoAAAANSUhEUgAA...",
"message": "Try-on completed successfully for tops",
"processing_time_seconds": 4.5,
"detected_category": "tops",
"tries_remaining": 95
}Python Örneği
import requests
import base64
API_KEY = "your_api_key_here"
URL = "https://platformapi.venis.app/v1/tryon"
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
payload = {
"image1_base64": encode_image("model.jpg"),
"image2_base64": encode_image("dress.jpg"),
"category": "dresses"
}
headers = {
"X-API-Key": API_KEY,
"Content-Type": "application/json"
}
response = requests.post(URL, json=payload, headers=headers)
if response.status_code == 200:
data = response.json()
print("Success:", data["message"])
# Save the result
with open("result.png", "wb") as f:
f.write(base64.b64decode(data["image_base64"]))
else:
print("Error:", response.json())Kullanım Bilgisi
Metod: GET
Uç Nokta: /v1/keys/usage
API Anahtarı için mevcut kullanım istatistiklerini, bakiyeyi ve limitleri getirir.
Yanıt
{
"user_id": "user_12345",
"balance": 500.0,
"tryon_limit": 1000,
"monthly_usage": 45,
"price_dealt": 1.5,
"total_requests": 150,
"successful_requests": 148,
"failed_requests": 2,
"is_active": true,
"created_at": "2024-01-01T12:00:00Z"
}Sağlık Kontrolü
Metod: GET
Uç Nokta: /health
API'nin çalışıp çalışmadığını kontrol etmek için basit bir uç nokta.
Yanıt
{
"status": "healthy",
"timestamp": "2024-02-09T12:00:00.000000",
"version": "1.0.0"
}Hata Yönetimi
API, isteklerin başarısını veya başarısızlığını belirtmek için standart HTTP durum kodlarını kullanır.
Durum Kodları
| Durum Kodu | Anlamı |
|---|---|
| 200 | Tamam - İstek başarılı. |
| 400 | Hatalı İstek - Geçersiz giriş (örn. resim çok büyük, eksik alanlar) / uygunsuz istek. |
| 401 | Yetkisiz - Geçersiz veya eksik API Anahtarı. |
| 402 | Ödeme Gerekli - Yetersiz bakiye. |
| 403 | Yasak - Erişim reddedildi. |
| 429 | Çok Fazla İstek - Hız sınırı aşıldı. |
| 500 | Sunucu Hatası - Sunucuda bir şeyler ters gitti. |
Hata Yanıt Formatı
{
"success": false,
"error": "insufficient_balance",
"message": "You do not have enough credits to perform this action."
}