អត្ថបទមុនពន្យល់ មូលដ្ឋានការផ្ទៀងផ្ទាត់ API Kencang.in។ ឥឡូវនេះយើងចូលទៅកាន់កូដ។ ខាងក្រោមជាឧទាហរណ៍បង្កើតតំណខ្លីជាបីភាសាដែលអ្នកប្រើរបស់យើងប្រើញឹកញាប់បំផុត៖ PHP សម្រាប់គេហទំព័រ WordPress និង Laravel, Python សម្រាប់ស្គ្រីបស្វ័យប្រវត្តិកម្ម និងទិន្នន័យ និង JavaScript ក្នុង Node.js សម្រាប់សេវាកម្មទំនើប។ ឧទាហរណ៍ទាំងអស់អានសោ API ពីអថេរបរិស្ថាន ដោយមិនសរសេរសោផ្ទាល់ក្នុងកូដ។
Endpoint ដែលប្រើ
POST https://kencang.in/api/url/add ជាមួយខ្លឹមសារ JSON។ ប៉ារ៉ាម៉ែត្រអប្បបរមាគឺ url។ ការឆ្លើយតបដោយជោគជ័យមាន error: 0, idនិង shorturl។ បញ្ជីពេញលេញនៃប៉ារ៉ាម៉ែត្រគឺនៅក្នុង ឯកសារអ្នកអភិវឌ្ឍន៍.
PHP ជាមួយ cURL
<?php
$key = getenv('KENCANG_KEY');
$payload = json_encode([
'url' => 'https://yourstore.com/promo',
'custom' => 'may-promo',
]);
$ch = curl_init('https://kencang.in/api/url/add');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $payload,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $key,
'Content-Type: application/json',
],
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
$data = json_decode($response, true);
if ($status !== 200 || !isset($data['error']) || $data['error'] !== 0) {
throw new RuntimeException($data['message'] ?? "HTTP $status");
}
echo $data['shorturl'];
នៅលើ Laravel អ្នកអាចជំនួសប្លុក cURL ដោយ Http::withToken($key)->post(...)។ បើប្រើ WordPress សូមប្រើ wp_remote_post() ដើម្បីអនុវត្តតាមការកំណត់ proxy និង SSL របស់គេហទំព័រ។ ឯកសារយោងមុខងារ cURL របស់ PHP មានក្នុង ឯកសារផ្លូវការ PHP.
Python ជាមួយ requests

បណ្ណាល័យ requests ដោះស្រាយការបម្លែង JSON តាមប៉ារ៉ាម៉ែត្រ json= និងបន្ថែមបឋមកថា Content-Type ដោយស្វ័យប្រវត្តិ។ តែងតែផ្តល់ឱ្យ timeout ដើម្បីកុំឱ្យស្គ្រីបជាប់គាំងពេលបណ្ដាញមានបញ្ហា។ ដើម្បីបង្កើតតំណរាប់រយពីឯកសារ CSV ដាក់ការហៅនេះក្នុងរង្វិលជុំ ហើយបន្ថែមពេលរង់ចាំខ្លីតាមកម្រិតសំណើរបស់គម្រោង។
JavaScript (Node.js 18+) ជាមួយ fetch

Node.js 18 និងខ្ពស់ជាងនេះមានរួចហើយ fetch មកជាមួយស្រាប់។ កុំដំណើរការកូដនេះក្នុងកម្មវិធីរុករក ព្រោះអ្នកបើក DevTools នឹងឃើញសោ API។ បើ frontend របស់អ្នកត្រូវបង្កើតតំណ សូមបង្កើត endpoint ក្នុង backend ដែលហៅ API Kencang.in។ ឯកសារ fetch អាចត្រូវបានអាននៅក្នុង MDN Web Docs.
ដោះស្រាយការឆ្លើយតបឱ្យបានត្រឹមត្រូវ
- ពិនិត្យកូដស្ថានភាព HTTP ជាមុន៖ 200 ជោគជ័យ 401 សោមិនត្រឹមត្រូវ 403 មុខងារមិនមានក្នុងគម្រោង 429 លើសកម្រិតសំណើ និង 5xx បញ្ហាម៉ាស៊ីនមេ។
- បន្ទាប់មកពិនិត្យ
errorក្នុងខ្លឹមសារ។ កំហុសផ្ទៀងផ្ទាត់មួយចំនួន ដូចជាឈ្មោះតំណប្រើរួច ឬ URL មិនត្រឹមត្រូវ ត្រូវបានឆ្លើយតបដោយស្ថានភាព 200 និងerror: 1រួមជាមួយនឹងសារ។ - រក្សាទុក
idបានត្រឡប់មកវិញនៅក្នុងមូលដ្ឋានទិន្នន័យផ្ទាល់ខ្លួនរបស់អ្នក ពីព្រោះអ្នកត្រូវការវាដើម្បីធ្វើបច្ចុប្បន្នភាព ឬលុប តំណ ។ - បង្កើតសំណើដែលអាចហៅឡើងវិញដោយមិនបង្កើតលទ្ធផលស្ទួន បើអាច៖ ប្រើឈ្មោះតំណកំណត់ជាមុន ដូចជាកូដផលិតផល ដើម្បីកុំឱ្យការហៅឡើងវិញបង្កើតតំណស្ទួន។
ករណីជាក់ស្តែង
ហាងអនឡាញបន្ថែម hook ពេលបោះផ្សាយផលិតផលថ្មី។ Hook ហៅ API ដោយប្រើ SKU ផលិតផលជាឈ្មោះតំណ រួចរក្សាទុក shorturl ក្នុងជួរឈរផលិតផល។ ក្រុមបណ្ដាញសង្គមគ្រាន់តែចម្លងតំណពីផ្ទាំងគ្រប់គ្រង ហើយការចុចនីមួយៗត្រូវបានកត់ត្រាតាមផលិតផល។ ទម្រង់ដូចគ្នាអាចប្រើបង្កើត កូដ QR ច្រើនសម្រាប់វេចខ្ចប់.
បន្ទាប់
ពេលការបង្កើតតំណដំណើរការ បន្ថែមការដោះស្រាយកម្រិតសំណើ និងការព្យាយាមឡើងវិញដែលពន្យល់ក្នុងអត្ថបទ កម្រិតសំណើ និងការដោះស្រាយកំហុសក្នុង APIឬទទួលការជូនដំណឹងចុចតាម webhook.
សំណួរដែលសួរញឹកញាប់
ហេតុអ្វីបានជាការឆ្លើយតប 200 ប៉ុន្តែ តំណ មិនត្រូវបានបង្កើត?
ពិនិត្យតម្លៃ error នៅក្នុងតួឆ្លើយតប។ កំហុសក្នុងសុពលភាពដូចជា ឈ្មោះតំណ ត្រូវបានប្រើប្រាស់ ឬ URL មិនត្រឹមត្រូវត្រូវបានប្រគល់មកវិញជាមួយនឹងស្ថានភាព 200 ហើយ error មានតម្លៃ 1 រួមជាមួយនឹងសារមួយ។ លេខកូដរបស់អ្នកគួរពិនិត្យមើលស្ថានភាព HTTP និងសោ error ក្នុងពេលតែមួយ។
តើជៀសវាងតំណស្ទួនពេលហៅសំណើឡើងវិញយ៉ាងដូចម្ដេច?
ប្រើឈ្មោះតំណកំណត់ជាមុន ដូចជាកូដផលិតផល ឬ ID ការបញ្ជាទិញ។ បើសំណើដំបូងជោគជ័យរួច ការហៅឡើងវិញនឹងត្រូវបដិសេធ ព្រោះមានឈ្មោះតំណរួច ហើយកម្មវិធីអាចទាញយកតំណដែលបានបង្កើត ជំនួសការបង្កើតថ្មី។
តើមានបណ្ណាល័យផ្លូវការសម្រាប់ PHP ឬ Python ទេ?
API Kencang.in ជា REST ធម្មតាជាមួយ JSON ដូច្នេះបណ្ណាល័យ HTTP ស្តង់ដារក្នុងភាសានីមួយៗគ្រប់គ្រាន់៖ cURL ឬ Guzzle ក្នុង PHP, requests ក្នុង Python និង fetch ក្នុង Node.js។ អ្នកអាចចម្លងឧទាហរណ៍ក្នុងអត្ថបទនេះទៅគម្រោងរបស់អ្នកផ្ទាល់។
តើគួរកំណត់ពេលរង់ចាំសំណើប៉ុន្មាន?
ដប់វិនាទីគឺគ្រប់គ្រាន់សម្រាប់លក្ខខណ្ឌធម្មតា។ ការបញ្ជូនបន្ត និងការបង្កើត តំណ ជាធម្មតាបញ្ចប់ក្នុងរយៈពេលរាប់រយមិល្លីវិនាទី ដូច្នេះសំណើដែលលើសពីពេលកំណត់គឺទំនងជាដោយសារតែបញ្ហាបណ្តាញ ហើយគួរតែត្រូវបានព្យាយាមម្តងទៀតជាមួយនឹងការពន្យារពេល។