- Konu sahibi
- #1
cPanel API, cPanel ve WHM üzerindeki işlemleri yazılımla otomatikleştirmek için kullanılan arayüzdür. Yeni entegrasyonlarda kullanım alanına göre iki temel arayüz öne çıkar: cPanel hesabına ait işlemler için UAPI, sunucu ve hesap yönetimi için WHM API 1. Yeni bir entegrasyonda cPanel hesabı işlemleri için genellikle UAPI tercih edilir; kullanıcı adı, alan adı, e-posta, veritabanı ve hesap ayarlarını komut satırı veya HTTP isteğiyle yönetebilirsiniz.
UAPI, tek bir cPanel hesabının yetkileriyle çalışır. Örneğin bir hesabın e-posta kutularını listelemek, alan adı eklemek veya hesap ayarlarını okumak için kullanılır. Komut satırındaki temel biçimi şöyledir:
WHM API 1 ise sunucu yöneticisi veya yetkili reseller işlemleri içindir. Hesap oluşturma, hesap listesini alma ve sunucu servislerini yönetme gibi işlemler bu katmana girer. Komut satırındaki temel biçimi şöyledir:
Bir işlem yalnızca cPanel hesabını ilgilendiriyorsa UAPI, birden fazla hesabı veya WHM ayarlarını ilgilendiriyorsa WHM API 1 seçilmelidir.
Aşağıdaki ayrım, entegrasyonun yanlış yetkiyle kurulmasını önler.
API seçimini yaptıktan sonra fonksiyon adını ve parametrelerini cPanel’in API dokümantasyonundan kontrol edin. Modül ve fonksiyon adları büyük-küçük harfe duyarlı olabilir; arayüzdeki HTML sayfalarına doğrudan parametre göndererek işlem yaptırmak yerine ilgili API fonksiyonunu çağırın.
Aşağıdaki örnek, cPanel sunucusundaki
Başarılı UAPI yanıtında
Harici bir uygulamadan çağrı yapmak için cPanel API token oluşturup HTTPS üzerinden 2083 portunu kullanabilirsiniz. Aşağıdaki metin bir terminal komutu değil, HTTPS isteğinin yol ve başlık yapısını gösterir:
JSON yanıtında yalnızca HTTP durum koduna bakmayın. Uygulamanızda API’nin sonuç durumunu ve hata mesajını da kontrol edin. Yetki yetersizliği, yanlış kullanıcı adı, eksik parametre veya hatalı modül-fonksiyon adı farklı hata sonuçları doğurabilir. Başarılı listeleme işleminden sonra dönen kayıtları uygulamanızın beklediği alanlara eşleyin; yanıt yapısını sabit varsaymadan ilgili fonksiyonun dokümantasyonundaki alanları kullanın.
Değişiklik yapan fonksiyonlarda önce aynı işlemin listeleme veya kontrol fonksiyonu varsa onu çalıştırın. Örneğin e-posta oluşturma işleminden önce alan adının hesaba bağlı olduğunu ve aynı kullanıcı adının mevcut olmadığını kontrol edin. İşlem başarısız olursa dönen hata metnini saklayın; doğrudan aynı isteği tekrar tekrar göndermek, özellikle oluşturma ve silme fonksiyonlarında istenmeyen sonuçlara yol açabilir.
UAPI yerine WHM API 1 kullanmak: Hesap seviyesindeki işlemlerde gereksiz WHM yetkisi istemek entegrasyonu karmaşıklaştırır.
Yanlış port kullanmak: cPanel API çağrıları için güvenli bağlantıda 2083, WHM API 1 için 2087 kullanılır. cPanel çağrısını WHM portuna göndermek yetki veya fonksiyon bulunamadı hatası oluşturabilir.
Token’ı URL’ye yazmak: Token,
Boolean değerleri yanlış göndermek: API parametrelerinde doğru ve yanlış değerleri için genellikle
Eski arayüz adreslerini çağırmak: cPanel’in
Token süresi dolsa bile kayıt sistemden otomatik kaldırılmayabilir. Kullanılmayan veya süresi dolan token’ları cPanel ya da WHM token yönetim ekranından iptal edin.
WHM tarafında yetkiniz varsa API Shell ile WHM API 1 fonksiyonlarını test edebilirsiniz. Canlı veriler üzerinde çalıştığı için silme veya değiştirme yapan fonksiyonlarda önce parametreleri ve etkisini kontrol edin.
UAPI ve WHM API 1 farkı
UAPI, tek bir cPanel hesabının yetkileriyle çalışır. Örneğin bir hesabın e-posta kutularını listelemek, alan adı eklemek veya hesap ayarlarını okumak için kullanılır. Komut satırındaki temel biçimi şöyledir:
Kod:
uapi --user=KULLANICI --output=json Modül Fonksiyon parametre=değer
WHM API 1 ise sunucu yöneticisi veya yetkili reseller işlemleri içindir. Hesap oluşturma, hesap listesini alma ve sunucu servislerini yönetme gibi işlemler bu katmana girer. Komut satırındaki temel biçimi şöyledir:
Kod:
whmapi1 --output=json Fonksiyon parametre=değer
Bir işlem yalnızca cPanel hesabını ilgilendiriyorsa UAPI, birden fazla hesabı veya WHM ayarlarını ilgilendiriyorsa WHM API 1 seçilmelidir.
Hangi API’yi seçmelisiniz?
Aşağıdaki ayrım, entegrasyonun yanlış yetkiyle kurulmasını önler.
| İhtiyaç | Kullanılacak API | Yetki bağlamı |
|---|---|---|
| E-posta, dosya, veritabanı veya alan adı işlemleri | UAPI | Tek cPanel hesabı |
| Hesap oluşturma veya hesap listesini yönetme | WHM API 1 | root veya yetkili reseller |
| Sunucu servisi ve WHM ayarları | WHM API 1 | WHM yetkisi |
Çalışan en küçük UAPI örneği
Aşağıdaki örnek, cPanel sunucusundaki
username hesabında e-posta kutularını JSON olarak listeler. Komut yetkili sunucu oturumunda, belirtilen cPanel hesabı bağlamında çalıştırılır. Bir WHM yöneticisinin başka hesabı belirtmesi uygun yönetim yetkisi gerektirir; UAPI işlemi root adına değil seçilen cPanel hesabında yürür:-
usernamedeğerini gerçek cPanel kullanıcı adıyla değiştirin. - Aşağıdaki komutu çalıştırın:
Kod:
uapi --user=username --output=json Email list_pops
Başarılı UAPI yanıtında
result.status değeri 1 olmalı; result.errors ve varsa uyarılar da incelenmelidir. Başarı durumunda veri listesi boşsa bu hesabın filtreye uyan e-posta kutusu bulunmaması anlamına gelebilir; API’nin çalışmadığını göstermez. command not found alırsanız cPanel sunucusunda değilseniz veya komut yolu sistemde bulunmuyorsa tam yolu deneyin:
Kod:
/usr/local/cpanel/bin/uapi --user=username --output=json Email list_pops
Harici bir uygulamadan çağrı yapmak için cPanel API token oluşturup HTTPS üzerinden 2083 portunu kullanabilirsiniz. Aşağıdaki metin bir terminal komutu değil, HTTPS isteğinin yol ve başlık yapısını gösterir:
Kod:
GET /execute/Email/list_pops HTTP/1.1
Host: example.com:2083
Authorization: cpanel username:APITOKEN
APITOKEN yalnız yer tutucudur. Gerçek değeri entegrasyonun korumalı gizli ayarından yükleyin; terminal komutuna açıkça yazarak geçmişe veya işlem argümanlarına düşürmeyin. Token’ı cPanel’de Security → Manage API Tokens bölümünden oluşturun ve yalnızca gerekli entegrasyonda kullanın. Token oluşturma ekranını göremiyorsanız bu özellik hosting yöneticisi tarafından kapatılmış olabilir.Sonucu nasıl yorumlamalısınız?
JSON yanıtında yalnızca HTTP durum koduna bakmayın. Uygulamanızda API’nin sonuç durumunu ve hata mesajını da kontrol edin. Yetki yetersizliği, yanlış kullanıcı adı, eksik parametre veya hatalı modül-fonksiyon adı farklı hata sonuçları doğurabilir. Başarılı listeleme işleminden sonra dönen kayıtları uygulamanızın beklediği alanlara eşleyin; yanıt yapısını sabit varsaymadan ilgili fonksiyonun dokümantasyonundaki alanları kullanın.
Değişiklik yapan fonksiyonlarda önce aynı işlemin listeleme veya kontrol fonksiyonu varsa onu çalıştırın. Örneğin e-posta oluşturma işleminden önce alan adının hesaba bağlı olduğunu ve aynı kullanıcı adının mevcut olmadığını kontrol edin. İşlem başarısız olursa dönen hata metnini saklayın; doğrudan aynı isteği tekrar tekrar göndermek, özellikle oluşturma ve silme fonksiyonlarında istenmeyen sonuçlara yol açabilir.
Sık yapılan hatalar
UAPI yerine WHM API 1 kullanmak: Hesap seviyesindeki işlemlerde gereksiz WHM yetkisi istemek entegrasyonu karmaşıklaştırır.
Yanlış port kullanmak: cPanel API çağrıları için güvenli bağlantıda 2083, WHM API 1 için 2087 kullanılır. cPanel çağrısını WHM portuna göndermek yetki veya fonksiyon bulunamadı hatası oluşturabilir.
Token’ı URL’ye yazmak: Token,
Authorization başlığında gönderilmelidir. Komut geçmişine, hata kayıtlarına veya istemci tarafı JavaScript koduna token koymayın.Boolean değerleri yanlış göndermek: API parametrelerinde doğru ve yanlış değerleri için genellikle
1 ve 0 kullanılır; true ve false her fonksiyonda geçerli kabul edilmez.Eski arayüz adreslerini çağırmak: cPanel’in
.html arayüz URL’lerine parametre eklemek desteklenen API kullanımı değildir. İlgili UAPI veya WHM API 1 fonksiyonunu çağırın.Sık sorulan sorular
API token süresi dolunca otomatik silinir mi?
Token süresi dolsa bile kayıt sistemden otomatik kaldırılmayabilir. Kullanılmayan veya süresi dolan token’ları cPanel ya da WHM token yönetim ekranından iptal edin.
API çağrısını önce nerede test edebilirim?
WHM tarafında yetkiniz varsa API Shell ile WHM API 1 fonksiyonlarını test edebilirsiniz. Canlı veriler üzerinde çalıştığı için silme veya değiştirme yapan fonksiyonlarda önce parametreleri ve etkisini kontrol edin.