Reputation: 122
I am learning REST apis, in which I can post a single record. Till now I have sent data/params for GET/POST/PUT in json format (HttpRequest/HttpResponse), but now I want to handle a bulky calls. Anyone having an example for the same?...I googled it but I am confused about how to start...so want a runing code if possible. Thanks in advance
Upvotes: 1
Views: 1544
Reputation: 49
Here is an example for xml:
@RestResource(urlMapping='/GETSaamTestSearches/*')
global with sharing class GETSaamTestSearches
{
@HttpGet
global static void doGet() {
string sResOutPut = '';
try {
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
res.addHeader('Content-Type', 'application/xml');
SVendorId = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
sResOutPut = '<?xml version=\'1.0\' encoding=\'UTF-8\'?>';
sResOutPut += '<SearchestoProcess>';
date dCurrentDate = System.today();
sResOutPut += '<records>';
for (Background_Search__c oBGS : [SELECT Id,.... FROM SalesforceObject Limit 500] ) {
sResOutPut += '<row>';
//************************************
sResOutPut += '<SubjectAddress>'+ChecknullString(oBGS.Subject_Address__c)+'</SubjectAddress>';
sResOutPut += '<SubjectCity>'+ChecknullString(oBGS.Subject_City__c)+'</SubjectCity>';
sResOutPut += '<SubjectState>'+ChecknullString(oBGS.Subject_State__c)+'</SubjectState>';
sResOutPut += '<SubjectZipCode>'+ChecknullString(oBGS.Subject_Zip_Code__c)+'</SubjectZipCode>';
sResOutPut += '<SearchTypeName>'+ChecknullString(oBGS.Search_Type_Name__c)+'</SearchTypeName>';
sResOutPut += '<State>'+ChecknullString(oBGS.Jurisdiction__r.State_Name__c)+'</State>';
sResOutPut += '<TimeFrame>7</TimeFrame>';
sResOutPut += '<NotesToResearcher>'+ChecknullString(oBGS.Notes_Pre_to_Researcher__c)+'</NotesToResearcher>';
sResOutPut += '<SearchID>'+ChecknullString(oBGS.ID)+'</SearchID>';
//************************************
sResOutPut += '</row>';
}
sResOutPut += '</records>';
sResOutPut += '<message>Success</message>';
sResOutPut += '</SearchestoProcess>';
//*******test the generate xml is correct or not by loading it in Dom document
Dom.Document domDoc = new Dom.Document();
domDoc.load(sResOutPut);
}
catch(exception ex) {
sResOutPut = '<?xml version=\'1.0\' encoding=\'UTF-8\'?><SearchestoProcess><message>';
sResOutPut += 'Error while processing the records +'+ex.getmessage()+'</message></SearchestoProcess>';
}
RestContext.response.responseBody = Blob.valueOf(sResOutPut);
}
public static string SVendorId {get; private set;}
public static string ChecknullString(string sVal)
{
if(sVal == null) {
sVal = '';
}
else {
//*****XML scape charactor
sVal = sVal.Replace('&', '&').Replace('>', '>').Replace('<', '<').Replace('\'', ''').Replace('"', '"');
}
return sVal;
}
private static string ChecknullNFormatDate(date sVal)
{
string sRetVal = '';
if(sVal == null) {
sRetVal = '';
}
else {
sRetVal = sVal.format();
}
return sRetVal;
}
}
Upvotes: 1