ورک بینچ کا تعارف
ورک بینچ کوئی آفیشل Salesforce.com پروڈکٹ نہیں ہے۔ لیکن ہم سیلز فورس کا استعمال ڈیٹا میں ہیرا پھیری کی کارروائیوں کو انجام دینے کے لیے کریں گے جیسے آپ کے سیلز فورس اکاؤنٹ میں لاگ ان کر کے منتخب کریں، داخل کریں، اوپر کریں، اپ ڈیٹ کریں اور حذف کریں (سینڈ باکس اور پروڈکشن دونوں کو سپورٹ کرتا ہے)۔ Salesforce کے ساتھ ورک بینچ کو لاگ ان کرنے کے لیے یہ آفیشل ویب سائٹ ہے: https://workbench.developerforce.com/login.php .
ابھی تک، API ورژن کو صرف موجودہ کے طور پر رکھیں اور 'Salesforce کے ساتھ لاگ ان کریں' بٹن پر کلک کریں۔
ہمیں REST ایکسپلورر کی ضرورت ہے۔ 'یوٹیلیٹیز' ٹیب پر جائیں اور 'REST Explorer' پر کلک کریں۔
آپ کو مندرجہ ذیل مثال کی طرح UI نظر آئے گا۔ ہمیں اس پوری گائیڈ میں سیلز فورس سے ریکارڈز حاصل کرنے کے لیے GET کا انتخاب کرنا ہوگا۔ ہمیں URI کی وضاحت کرنے کی ضرورت ہے جو Salesforce ریکارڈز کو حاصل کرتا ہے اور 'Execute' بٹن پر کلک کریں۔
سیلز فورس ID کے ساتھ مخصوص ریکارڈ بازیافت کریں۔
Salesforce ریکارڈ ID کی بنیاد پر، ہم Salesforce کا پورا ریکارڈ حاصل کر سکتے ہیں۔ ہمیں URI کو مندرجہ ذیل ترتیب دینے کی ضرورت ہے:
/ خدمات / ڈیٹا / v56.0 / اشیاء / آبجیکٹAPINname / آئی ڈییہاں، 'objectAPIName' Salesforce سٹینڈرڈ/کسٹم آبجیکٹ ہے اور 'id' سے مراد Salesforce ID ہے۔
واپسی:
آپ کو مندرجہ ذیل کی طرح JSON فارمیٹ میں HTTP/1.1 200 OK خام جواب ملے گا۔
{'صفات' : {
'قسم' :
'url' :
} ,
'میدان' : قدر،
...
}
مثال:
اس مثال میں، ہم 5005i00000W4GM5AAN کیس ریکارڈ حاصل کرتے ہیں۔
قسم: / خدمات / ڈیٹا / v56.0 / اشیاء / معاملہ / 5005i00000W4GM5AANنتیجہ:
ہم دیکھ سکتے ہیں کہ جواب JSON فارمیٹ میں تیار ہوا ہے۔
ہم یہاں سے براہ راست نتائج بھی دیکھ سکتے ہیں:
استفسار کے ساتھ ایک سے زیادہ ریکارڈز بازیافت کریں۔
سیلز فورس آبجیکٹ سے متعدد ریکارڈز بازیافت کرنے کا وقت آگیا ہے۔ پہلے، ہم نے URI میں سبجیکٹس کی وضاحت کی تھی۔ یہاں، ہمیں ایک سوال کی وضاحت کرنے کی ضرورت ہے جو سوال کو پیرامیٹر کے طور پر لیتی ہے۔
URI: خدمات / ڈیٹا / v57.0 / استفسار / ? q =SELECT+field1,field2,....from+ObjectAPINnameایک سوال میں مطلوبہ الفاظ کو شامل کرنے کے لیے ہمیں '+' کو حد بندی کے طور پر استعمال کرنے کی ضرورت ہے۔ یہ فولڈر میں ٹوٹل سائز اور ریکارڈ واپس کرتا ہے۔ ہر ریکارڈ کے لیے فولڈر کا نام ہے [آئٹم 1]،…[آئٹم این]۔
مثال 1:
آئیے وہ ریکارڈ واپس کرتے ہیں جن میں کیس نمبر، حیثیت، ترجیح، اور کیس آبجیکٹ سے تفصیل شامل ہے۔
نتیجہ:
جب آپ 'Expand All' پر کلک کریں گے، تو آپ کو تمام ریکارڈ اس کی خصوصیات اور اقدار کے ساتھ نظر آئیں گے۔
مجھے پہلا اور آخری ریکارڈ دکھانے دو:
مثال 2:
آئیے انہی فیلڈز کے ساتھ صرف تین ریکارڈ واپس کرتے ہیں جیسا کہ پہلی مثال میں دیکھا گیا ہے۔
نتیجہ:
پہلے دو ریکارڈز جو کیس آبجیکٹ میں موجود ہیں واپس کردیئے گئے ہیں۔
مثال 3:
آئیے استفسار میں WHERE شرط کی وضاحت کریں جو 'نئی' حیثیت کے ساتھ ریکارڈز کو منتخب کرتی ہے۔
نتیجہ:
'نئی' حیثیت کے ساتھ پانچ ریکارڈ موجود ہیں۔
اپیکس میں کسٹم ریسٹ ریسورس
ہم Salesforce Apex کا استعمال کر سکتے ہیں جو Salesforce آبجیکٹ سے ورک بینچ میں URI بتا کر ریکارڈ واپس کرتا ہے۔ اپیکس میں REST لکھنے کے لیے، ہمیں کچھ تشریحات کا استعمال کرنا ہوگا جو آپ کی Apex کلاس میں REST API تک رسائی حاصل کرتے ہیں۔ یقینی بنائیں کہ ہماری Apex کلاس عالمی سطح پر جامد ہونی چاہیے۔
1. @RestResource تشریح
اس تشریح کا استعمال اس قابل بنانے کے لیے کیا جاتا ہے جو ایک Apex کلاس کو REST وسائل کے طور پر ظاہر کرتا ہے۔ یہ urlMapping کو ایک پیرامیٹر کے طور پر لیتا ہے جو ورک بینچ میں URI کو تلاش کرنے کے لیے استعمال ہوتا ہے۔
نحو: @RestResource(urlMapping='/Version/ApexClassName/')
'ورژن' آپ کا ورک بینچ ورژن ہے جیسا کہ V56.0 اور 'ApexClassName' آپ کی Apex کلاس ہے جہاں باقی API وسائل شامل ہیں۔
2. @HttpGet تشریح
اس تشریح کا استعمال اس قابل بنانے کے لیے کیا جاتا ہے جو ایک Apex کلاس کو REST وسائل کے طور پر ظاہر کرتا ہے۔ اسے کہا جاتا ہے جب ایک HTTP GET درخواست سرور کو بھیجی جاتی ہے اور مخصوص وسائل کو واپس کرتی ہے۔
نحو: @httpGet
مثال 1: سنگل پرم
'RestApi_Get_Record.apxc' اپیکس کلاس لکھیں جس میں کیس آبجیکٹ سے کیس سے آئی ڈی، کیس نمبر، حیثیت، ترجیح، اور اصل واپس کرنے کے لیے 'ریسٹ گیٹ' کا طریقہ شامل ہے۔
@ ریسورس ( یو آر ایل میپنگ = '/v56.0/RestApi_Get_Record/' )گلوبل کلاس RestApi_Get_Record {
// REST - طریقہ حاصل کریں۔
@ http حاصل کریں۔
عالمی جامد کیس getCaseDetails ( ) {
// آبجیکٹ بنائیں کے لیے کیس آبجیکٹ
کیس کیس_obj = نیا کیس ( ) ;
نقشہ < تار، تار > paramsMap = RestContext.request.params؛
// حاصل کریں معاملہ آئی ڈی
String caseid =paramsMap.get ( 'input_id' ) ;
// SOQL استفسار کرے گا۔ واپسی آئی ڈی ،کیس نمبر، حیثیت، ترجیح، کیس سے اصل
// کیس اعتراض
case_obj = [ منتخب کریں آئی ڈی کیس نمبر، اسٹیٹس، ترجیح، کیس سے اصل جہاں آئی ڈی =: کیسیڈ ] ;
واپسی کیس_obj؛
}
}
URI اور نتیجہ:
ورک بینچ پر جائیں اور REST ایکسپلورر پر جائیں۔ id کو 5002t00000Pdzr2AAB کے بطور input_id پیرم میں منتقل کریں۔
/ خدمات / سب سے اوپر / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB
وضاحت:
- 'case_obj' کیس کے لیے ایک آبجیکٹ بنائیں۔
- RestContext.request.params کا استعمال کرتے ہوئے پیرامز حاصل کریں۔
- param input_id سے کیس آئی ڈی حاصل کریں اور اسے کیسیڈ متغیر میں اسٹور کریں۔
- SOQL استفسار لکھیں جو 'caseid' کیس کے Case آبجیکٹ سے id، CaseNumber، حیثیت، ترجیح، اصل کو واپس کرتا ہے۔
- کیس آبجیکٹ (case_obj) واپس کریں۔
مثال 2: متعدد پیرامز
پچھلی ایپکس کلاس کا استعمال کریں اور آئی ڈی کے ساتھ 'اسٹیٹس' پرم حاصل کریں۔ ورک بینچ URI میں ان دو پیرامز کی وضاحت کریں جو '&' سے الگ ہیں۔
@ ریسورس ( یو آر ایل میپنگ = '/v56.0/RestApi_Get_Record/' )گلوبل کلاس RestApi_Get_Record {
// REST - طریقہ حاصل کریں۔
@ http حاصل کریں۔
عالمی جامد کیس getCaseDetails ( ) {
// آبجیکٹ بنائیں کے لیے کیس آبجیکٹ
کیس کیس_obj = نیا کیس ( ) ;
نقشہ < تار، تار > id_param = RestContext.request.params;
نقشہ < تار، تار > status_param = RestContext.request.params؛
// id_param کیس_id میں حاصل کریں۔
String case_id = id_param.get ( 'input_id' ) ;
// کیس_سٹیٹس میں اسٹیٹس_پرم حاصل کریں۔
String case_status =status_param.get ( 'حالت' ) ;
case_obj = [ منتخب کریں آئی ڈی کیس نمبر، اسٹیٹس، ترجیح، کیس سے اصل جہاں آئی ڈی =: کیس_ آئی ڈی اور اسٹیٹس =: کیس_ اسٹیٹس ] ;
واپسی کیس_obj؛
}
}
URI اور نتیجہ:
ورک بینچ پر جائیں اور REST ایکسپلورر پر جائیں۔ input_id کو 5002t00000PdzqwAAB کے طور پر اور URI میں 'بند' کی حیثیت سے پاس کریں۔
/ خدمات / سب سے اوپر / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB اور حالت = بند
نتیجہ
ہم نے Workbench کا استعمال کرتے ہوئے Salesforce REST API کے ذریعے Salesforce ریکارڈز کو بازیافت کرنے کے تین منظرناموں پر تبادلہ خیال کیا۔ ایک مخصوص ریکارڈ واپس کرنے کے لیے، ہمیں URI میں پیرامیٹر کے طور پر id پاس کر کے sObject کی وضاحت کرنے کی ضرورت ہے۔ اسی طرح، ہم مخصوص ریکارڈ حاصل کرنے کے لیے استفسار کے پیرامیٹرز کو پاس کرتے ہیں۔ اپیکس کا استعمال کرتے ہوئے، ہم سنگل/متعدد پیرامیوں کی بنیاد پر ریکارڈ کو منتخب کرنے کے لیے اپنا 'گیٹ' طریقہ بنا سکتے ہیں۔