Hizmet Gereksinim Yanıtları
Bir hizmette müşterinin gereksinimlere verdiği yanıtları okuyan, ekleyen, düzenleyen ve silen dört uç.
Genel Bakış
Gereksinim, ürünün sipariş anında sorduğu sorudur; burada o soruların hizmetteki cevapları yönetilir. Soruların kendisi ürün tarafında tanımlanır.
Bir yanıt iki kaynaktan gelir. Tanıma bağlı olanlar ürün gereksinimine bağlıdır ve o tanımın tipini, seçeneklerini ve modül eşlemesini taşır. Serbest olanlar yalnız bir etiket ve içeriktir; sonradan elle eklenir ve modüle geçmez.
Referans
Yanıtları Listeleme
Hizmete verilmiş gereksinim yanıtlarının tamamını döndürür.
product tanımdan gelir, custom serbest eklenmiştir.text, select, radio, checkbox ya da file.curl 'https://panel.ornek.com/api/v1/admin/services/506/requirements' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/services/506/requirements', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/506/requirements');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Services()->GetServiceRequirements(['id' => 506]);
// 'response' tipe gore sekil degistirir: dosyada dizi, digerlerinde metin.
foreach ($response['data'] as $req) {
$answer = $req['type'] === 'file'
? array_column($req['response'], 'file_name')
: $req['response'];
}{
"data": [
{
"id": 12,
"requirement_id": 22,
"key": "product",
"name": "Game Name",
"type": "text",
"response": "Minecraft",
"response_mkey": "",
"field_options": []
}
]
}Yanıt Ekleme
Hizmete gereksinim yanıtı ekler. Tanıma bağlı ya da serbest olabilir.
defined tanıma bağlar, custom serbest ekler. Varsayılan defined.text ya da file. Varsayılan text; serbest gereksinimde seçim tipleri yoktur.201 ile döner. Liste şemasının bir satırıyla aynıdır.curl -X POST 'https://panel.ornek.com/api/v1/admin/services/506/requirements' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"source":"custom","label":"Server Name","type":"text","content":"srv-01"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/services/506/requirements', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
source: 'custom',
label: 'Server Name',
type: 'text',
content: 'srv-01',
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/506/requirements');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'source' => 'custom',
'label' => 'Server Name',
'type' => 'text',
'content' => 'srv-01',
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Secim tipinde SECENEGIN KIMLIGI gonderilir; metni gondermek yanlis kaydeder.
$definition = Api::Products()->GetRequirement(['id' => 22])['data'];
$option = $definition['langs']['en']['options'][0];
Api::Services()->CreateServiceRequirement([
'id' => 506,
'source' => 'defined',
'requirement_id' => 22,
'response' => $option['id'],
]);Yanıtı Güncelleme
Metin tabanlı bir yanıtı değiştirir. Dosya yanıtları düzenlenemez.
response_mkey yeniden çözülür.curl -X PATCH 'https://panel.ornek.com/api/v1/admin/services/506/requirements/12' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"response":"Valheim"}'const res = await fetch('https://panel.ornek.com/api/v1/admin/services/506/requirements/12', {
method: 'PATCH',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ response: 'Valheim' }),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/506/requirements/12');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode(['response' => 'Valheim']),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Dosya yanitini degistirmenin yolu sil-ve-yeniden-ekle'dir.
Api::Services()->DeleteServiceRequirement(['id' => 506, 'req_id' => 12]);
Api::Services()->CreateServiceRequirement([
'id' => 506,
'source' => 'custom',
'label' => 'Contract',
'type' => 'file',
'file' => 'data:application/pdf;base64,' . base64_encode($pdf),
]);Yanıtı Silme
Gereksinim yanıtını siler. Dosya tipindeyse yüklenen dosya diskten de kaldırılır.
curl -X DELETE 'https://panel.ornek.com/api/v1/admin/services/506/requirements/12' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/services/506/requirements/12', {
method: 'DELETE',
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/services/506/requirements/12');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$response = Api::Services()->DeleteServiceRequirement([
'id' => 506,
'req_id' => 12,
]);Tuzaklar
Açılır liste, tek seçim ve çoklu seçim tiplerinde yanıt olarak tanımdaki seçeneğin kimliği gönderilir. Seçeneğin görünen metnini göndermek hata vermez ama yanlış değeri kaydeder ve modül eşlemesi çözülemez. Kimlikleri ürün gereksinim tanımından okuyun.
Güncelleme ucu dosya tipinde file_not_editable döndürür. Bir dosyayı değiştirmenin tek yolu kaydı silip yenisini eklemektir; silme işlemi yüklenen dosyayı diskten de kaldırır, yani eskisi geride kalmaz.
Listede response alanı dosya tipinde dizi, diğer tiplerde düz metin gelir. Tek bir şekil bekleyen kod dosya gereksinimi olan ilk hizmette patlar; okumadan önce type alanına bakın.
Serbest eklenen bir gereksinim yalnız kayıtta durur: tanımı olmadığı için modül eşlemesi de yoktur. Cevabın sunucuda bir işe yaraması gerekiyorsa gereksinimi ürün tarafında tanımlayın ve buraya tanıma bağlı olarak ekleyin.
İ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.