This blog will help you to setup salesforce rest based sample in a easy way and testing methods within same salesforce org.
Class Code:
Testing can be done by running below snippet in your Develper console / Anonymous code bloc ( ctrl + e)
Class Code:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@RestResource(urlMapping='/FindCase/V1/*') | |
global with sharing class ApexRestBased | |
{ | |
@HttpPut //if it is request body type, then any one of these are fine PUT, PATCH, POST but same method cannot be used twice. | |
global static void findCaseDetails() //Method name not play any role | |
{ | |
RestRequest req = RestContext.request; | |
ApexRestBased.Request_DTO req_dto = (ApexRestBased.Request_DTO)JSON.deserialize(req.requestBody.tostring(), ApexRestBased.Request_DTO.class); | |
ApexRestBased.Response_DTO res_dto = processRequest(req_dto); | |
prepareResponse(res_dto); | |
} | |
private class Request_DTO{ | |
private string caseNumber = ''; | |
} | |
private class Response_DTO{ | |
private string result = ''; | |
private string isSuccess = ''; | |
private string errorNumber = ''; | |
private string errorDesc = ''; | |
} | |
private static ApexRestBased.Response_DTO processRequest(ApexRestBased.Request_DTO req_dto){ | |
ApexRestBased.Response_DTO res_dto = new ApexRestBased.Response_DTO(); | |
list<Case> resCases = [SELECT Id, CaseNumber, Status, Type, Reason, Origin, Subject, Priority, Description, IsClosed FROM Case WHERE CaseNumber =: req_dto.caseNumber]; | |
if(resCases != null && !resCases.isEmpty()){ | |
res_dto.result = system.JSON.serialize(resCases); | |
res_dto.isSuccess = 'true'; | |
} | |
else{ | |
res_dto.isSuccess = 'false'; | |
res_dto.errorNumber = '0000001'; | |
res_dto.errorDesc = 'Case Not found!'; | |
} | |
return res_dto; | |
} | |
private static void prepareResponse(ApexRestBased.Response_DTO res_dto){ | |
RestResponse res = RestContext.response; | |
res.statusCode = 200; | |
res.addHeader('Content-Type', 'application/json'); | |
res.responseBody = Blob.valueOf(System.JSON.serialize(res_dto)); | |
} | |
} |
Testing can be done by running below snippet in your Develper console / Anonymous code bloc ( ctrl + e)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
String salesforceHost = System.Url.getSalesforceBaseURL().toExternalForm(); | |
String url = salesforceHost + '/services/apexrest/pradeep_dani/FindCase/V1'; | |
HttpRequest req = new HttpRequest(); | |
req.setMethod('PUT'); | |
req.setEndpoint(url); | |
req.setHeader('Content-type', 'application/json'); | |
req.setHeader('Authorization', 'Bearer ' + UserInfo.getSessionId()); | |
req.setBody('{"caseNumber":"00001085"}'); | |
Http http = new Http(); | |
HTTPResponse res = http.send(req); | |
System.debug(res.getBody()); |
Comments
Post a Comment