سیلز فورس میں ریسٹ API کا استعمال کرتے ہوئے ریکارڈز بازیافت کریں۔

Sylz Fwrs My Rys Api Ka Ast Mal Krt Wy Rykar Z Bazyaft Kry



اس گائیڈ میں، ہم اس بات پر تبادلہ خیال کریں گے کہ سیلز فورس میں ورک بینچ کے ذریعے REST API کے ساتھ سیلز فورس ریکارڈز کو کیسے بازیافت کیا جائے۔ اس گائیڈ کے حصے کے طور پر، ہم اس بات پر تبادلہ خیال کریں گے کہ کس طرح ورک بینچ کو استعمال کیا جائے، مخصوص ریکارڈز کو sObject کا استعمال کرتے ہوئے کیسے حاصل کیا جائے، اور استفسار کا استعمال کرتے ہوئے کسی آبجیکٹ سے متعدد ریکارڈز حاصل کریں اور Apex custom REST API لکھ کر ریکارڈز حاصل کریں۔ ہم مظاہرے کے لیے Salesforce Standard Case آبجیکٹ کا استعمال کریں گے۔ سیلز فورس بیک اینڈ میں کوئی کیس ریکارڈ بنانے کی ضرورت نہیں ہے۔ ہم موجودہ معیاری کیس ریکارڈ استعمال کرتے ہیں جو Salesforce کی طرف سے فراہم کیا جاتا ہے۔

ورک بینچ کا تعارف

ورک بینچ کوئی آفیشل 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:
آئیے وہ ریکارڈ واپس کرتے ہیں جن میں کیس نمبر، حیثیت، ترجیح، اور کیس آبجیکٹ سے تفصیل شامل ہے۔

/ خدمات / ڈیٹا / v57.0 / استفسار / ? q =SELECT+کیس نمبر، حیثیت، ترجیح، تفصیل+سے+کیس

نتیجہ:

جب آپ 'Expand All' پر کلک کریں گے، تو آپ کو تمام ریکارڈ اس کی خصوصیات اور اقدار کے ساتھ نظر آئیں گے۔

مجھے پہلا اور آخری ریکارڈ دکھانے دو:

مثال 2:
آئیے انہی فیلڈز کے ساتھ صرف تین ریکارڈ واپس کرتے ہیں جیسا کہ پہلی مثال میں دیکھا گیا ہے۔

/ خدمات / ڈیٹا / v57.0 / استفسار / ? q =SELECT+کیس نمبر، حیثیت، ترجیح، تفصیل+ سے+ کیس+ حد+ 2

نتیجہ:
پہلے دو ریکارڈز جو کیس آبجیکٹ میں موجود ہیں واپس کردیئے گئے ہیں۔

مثال 3:
آئیے استفسار میں WHERE شرط کی وضاحت کریں جو 'نئی' حیثیت کے ساتھ ریکارڈز کو منتخب کرتی ہے۔

/ خدمات / ڈیٹا / v57.0 / استفسار / ? q =SELECT+کیس نمبر، حیثیت، ترجیح، تفصیل+سے+کیس+جہاں+ حالت = 'نئی'

نتیجہ:

'نئی' حیثیت کے ساتھ پانچ ریکارڈ موجود ہیں۔

اپیکس میں کسٹم ریسٹ ریسورس

ہم 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 کی وضاحت کرنے کی ضرورت ہے۔ اسی طرح، ہم مخصوص ریکارڈ حاصل کرنے کے لیے استفسار کے پیرامیٹرز کو پاس کرتے ہیں۔ اپیکس کا استعمال کرتے ہوئے، ہم سنگل/متعدد پیرامیوں کی بنیاد پر ریکارڈ کو منتخب کرنے کے لیے اپنا 'گیٹ' طریقہ بنا سکتے ہیں۔