I have written an Restful GET API call to get 10 records based on some condition. In that I am returning all records as a string, while executing that method from Workbench I am not getting proper format. But in debug logs I am getting proper JSON response. Did I missed something?
Method:
@RestResource(urlMapping='/meetings/*')
global with sharing class RestWebshowMappingscls {
@HttpGet
global static string getMeetInviteDetails(){
List<Meeting__c> metLst=new List<Meeting__c>();
List<Mainwrapper> mainWrapLst;
string finalqryvalue;
metLst=[select id,name,Event__r.name,Meeting_ID__c,Meeting_with__c,Meeting_UUID__c,(select Meeting__r.name,Attendee__r.name,Unique_ID__c,Attendee_Status__c,Attendee_Name__c from Invites__r) from Meeting__c where Meeting_ID__c!=null limit 10];
system.debug('metLst value' +metLst.size());
if(metLst.size()>0 && metLst!=null){
try{
for(Meeting__c met:metLst){
mainWrapLst=new List<Mainwrapper>();
Mainwrapper mainWrap=new Mainwrapper();
List<meeting> meetingWrapLst=new List<meeting>();
meeting meetingWrap=new Meeting();
meetingWrap.mid=met.Meeting_ID__c;
meetingWrap.meetingwith=met.Meeting_with__c;
meetingWrap.eventName=met.Event__c;
meetingWrap.meetinguuid=met.Meeting_UUID__c;
meetingWrapLst.add(meetingWrap);
List<invite> inwrap;
List<invites__c> invlst;
for(Invites__c inv : met.invites__r){
inwrap=new List<invite>();
invite invt=new invite();
invt.invitestatus=inv.Attendee_Status__c;
invt.inviteUniqueid=inv.Unique_ID__c;
inwrap.add(invt) ;
}
meetingWrap.invites=inwrap;
mainWrap.data=meetingWrapLst;
mainWrap.statusCode=200;
mainWrap.status='Success';
mainWrap.message='Details of Meetings';
mainWrapLst.add(mainwrap);
RestContext.response.responseBody = Blob.valueOf(JSON.serialize(mainWrapLst));
finalqryvalue = JSON.serialize(mainWrapLst);
system.debug('finalqryvalue @@' +finalqryvalue);
}
} catch(exception ex){
System.debug('exception type' +ex.getTypeName());
}
}
return finalqryvalue;
}
//Wrapper to diplay values///
global class Mainwrapper{
public List<meeting> data;
public integer statusCode;
public string status;
public string message;
}
global class meeting{
public string meetingwith;
public string eventName;
public string mid;
public string meetinguuid;
public List<invite> invites;
}
global class invite{
public string invitestatus;
public string inviteUniqueid;
}
}
{}
or Ctrl-K to format your code. Otherwise it is unreadable. I've fixed it here. – David Reed♦ Jul 4 '18 at 12:13