Modül Ayarları ve Çağrıları
Tek bir modülün ayarlarını, sınamasını, metotlarını ve kayıtlarını kapsayan altı uç.
Genel Bakış
Bu makale tek bir modülün içine uzanan uçları toplar: ayarlarını okumak ve yazmak, bağlantısını sınamak, kendi metotlarını çağırmak ve tuttuğu kayıtları görmek.
Ayar yazmanın iki yolu vardır ve aralarındaki fark önemlidir. Ayar ucu panelin kaydetme yolunu izler: modülün süzgeçleri, doğrulaması ve kancaları çalışır. Yapılandırma ucu ise dosyaya doğrudan yazar.
Sırlar sunucudan çıkmaz. Parola benzeri her değer maskeyle döner ve aynı maskeyi geri göndermek "bu alanı değiştirme" demektir.
Referans
Ham Yapılandırmayı Okuma
Modülün diskteki ayarlarını olduğu gibi döndürür.
curl 'https://panel.ornek.com/api/v1/admin/modules/mail/Mailjet/config' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/modules/${group}/${key}/config`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data } = await res.json();
const masked = Object.entries(data.settings).filter(([, v]) => v === '**********');$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/' . $group . '/' . $key . '/config');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Sirlar MASKELI gelir: bu cikti bir yedek DEGILDIR, baska kuruluma tasirsaniz anahtarlar gitmez.
$cfg = Api::Modules()->GetModuleConfig(['group' => $group, 'module' => $key])['data'];Ham Yapılandırmayı Yazma
Gönderdiğiniz anahtarları modülün ayar dosyasına birleştirir.
module_deprecated ile reddedilir.curl -X PUT 'https://panel.ornek.com/api/v1/admin/modules/mail/Mailjet/config' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"settings":{"from_name":"Support"}}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/modules/${group}/${key}/config`, {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ settings: { from_name: 'Support' } }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/' . $group . '/' . $key . '/config');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['settings' => ['from_name' => 'Support']]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Bu uc dosyaya DOGRUDAN yazar: modulun kendi dogrulamasi ve kancalari CALISMAZ.
// Gunluk kullanimda ayar ucunu secin; bu uc kurtarma ve gecis icindir.
Api::Modules()->SaveModuleConfig([
'group' => $group, 'module' => $key, 'settings' => ['from_name' => 'Support'],
]);Ayarları Kaydetme
Ayarları modülün kendi doğrulamasından geçirerek kaydeder.
module_deprecated ile reddedilir.module_error ile reddedilir.details.modules onu adlandırır. Zaten etkin olan böyle bir modül normal kaydedilir ve kapatılabilir.curl -X PUT 'https://panel.ornek.com/api/v1/admin/modules/payment/Stripe/settings' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"settings":{"api_key":"sk_live_123"},"commission_rate":"2.5"}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/modules/${group}/${key}/settings`, {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
settings: { api_key: 'sk_live_123' },
commission_rate: '2.5',
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/' . $group . '/' . $key . '/settings');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['settings' => ['api_key' => $liveKey]]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Panelin kaydetme yolunun aynisi: modul filtreleri, dogrulamasi ve kancalari CALISIR.
Api::Modules()->UpdateModuleSettings([
'group' => 'payment', 'module' => 'Stripe',
'settings' => ['api_key' => $liveKey], 'commission_rate' => '2.5',
]);Bağlantıyı Sınama
Modülün karşı servise ulaşıp ulaşmadığını dener.
curl -X POST 'https://panel.ornek.com/api/v1/admin/modules/payment/Stripe/test-connection' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"settings":{"api_key":"sk_test_123"}}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/modules/${group}/${key}/test-connection`, {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ settings: { api_key: candidate } }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/' . $group . '/' . $key . '/test-connection');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['settings' => ['api_key' => $candidate]]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Sinama KAYDETMEZ: yeni anahtari once burada deneyin, gecerse ayar ucuyla yazin.
$out = Api::Modules()->TestModuleConnection([
'group' => $group, 'module' => $key, 'settings' => ['api_key' => $candidate],
])['data'];
if ($out['connected']) Api::Modules()->UpdateModuleSettings([
'group' => $group, 'module' => $key, 'settings' => ['api_key' => $candidate],
]);Modül Metodu Çalıştırma
Modülün kendi panel metodunu çağırır ve sonucunu döndürür.
save çağrısı, aktif personelin giriş kodunu aldığı kanalı kapatacaksa geri alınır ve bu kodla o personeli sayarak döner. Etkin olmayan, kullanımdan kaldırılmış bir kısa mesaj modülü ya da kapalı, kullanımdan kaldırılmış bir dolandırıcılık modülü de bu yoldan açılamaz; hiçbir şey yazılmaz.curl -X POST 'https://panel.ornek.com/api/v1/admin/modules/product/SampleProduct/methods/crud-list' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"page":1}'const res = await fetch(`https://panel.ornek.com/api/v1/admin/modules/${group}/${key}/methods/${method}`, {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ page: 1 }),
});
const { data } = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/' . $group . '/' . $key . '/methods/' . $method);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['page' => 1]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Sonuc PANELIN kendi ciktisi olabilir; bicimi modul belirler, API sozlesmesi degil.
$out = Api::Modules()->RunModuleMethod([
'group' => $group, 'module' => $key, 'method' => $method, 'page' => 1,
])['data'];
$isMarkup = is_string($out['result']);Dolandırıcılık Kayıtlarını Okuma
Bir dolandırıcılık modülünün işaretlediği kayıtları döndürür.
curl 'https://panel.ornek.com/api/v1/admin/modules/fraud/MaxMind/records?limit=50' \
-H "Authorization: Bearer $API_KEY"const res = await fetch(`https://panel.ornek.com/api/v1/admin/modules/fraud/${key}/records`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data, meta } = await res.json();
const flagged = new Set(data.map((r) => r.user_id));$ch = curl_init('https://panel.ornek.com/api/v1/admin/modules/fraud/' . $key . '/records');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Kayit tutmak modulun secimidir: yetenek listesinde gormeden cagirirsaniz 422 alirsiniz.
$m = Api::Modules()->GetModule(['group' => 'fraud', 'module' => $key])['data'];
if ($m['capabilities']['has_records'])
$rows = Api::Modules()->GetFraudRecords(['group' => 'fraud', 'module' => $key])['data'];Tuzaklar
Yapılandırma ucu ayarları doğrudan dosyaya yazar: modülün alan süzgeçleri, denetimleri ve kaydetme kancaları çalışmaz. Geçersiz bir değer hata vermeden yazılır ve ilk gerçek kullanımda patlar. Günlük iş için ayar ucunu seçin; yapılandırma ucu kurtarma ve geçiş içindir.
Okuma uçları sır benzeri değerleri maskeyle döndürür, gerçek değeri hiç vermez. Bir modülün yapılandırmasını dışa aktarıp başka bir kuruluma taşırsanız anahtarlar taşınmaz; hedefte alanlar maskeyle dolar ve modül çalışmaz. Sırları ayrı taşıyın.
Bağlantı sınaması gönderdiğiniz ayarları o çağrıyla sınırlı kullanır; başarılı olsa bile hiçbir şey yazmaz. Yeni bir anahtarı sınayıp kaydetmeyi unutmak, çalıştığını gördüğünüz yapılandırmanın aslında hiç var olmadığı anlamına gelir. Sınamadan sonra ayar ucuyla yazın.
Metot çalıştırma ucu modülün panel metodunu çağırır ve sonucu olduğu gibi verir. Bu sonuç bir nesne olabileceği gibi panelin göstereceği işaretleme de olabilir. Biçimi modül belirler ve sürümle değişebilir; ayrıştırmaya dayalı bir tümleştirme kurmayın. Kayıt listeleyen bir metot (registrar domains ya da tlds, fraud records) panelin tablo yanıtını verir: total ve body içinde işlenmiş satırlar; sayfalama ve arama gövdede ya da sorgu dizesinde gönderilen page, perPage ve search alanlarıyla çalışır.
Kayıt ucu dolandırıcılık grubu dışında not_supported döner, ve o grupta bile her modül kayıt tutmaz. Çağırmadan önce modül detayındaki yetenek listesine bakın; orada görünmüyorsa uç boş değil hata döndürür.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.