function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Pavlo ShchurPavlo Shchur 

Is it possible to send an http request (...httpResponse = http.send(httpRequest) ...) when in custom REST API I am using RestContext?

public class ScannedBusinessCardRESTResource {
    
    public static void doGet() {
        
        RestContext.response.addHeader('Content-Type', 'application/json');
        
        String userId = RestContext.request.params.get('creatorId'); 
        String status = RestContext.request.params.get('status');
        String cardId = RestContext.request.params.get('id');
        
        if(userId != null && status != null && cardId == null) {
            
            RestContext.response.responseBody = 
                Blob.valueOf(JSON.serialize( 
                    new DTOScannedBusinessCard.CardsList( ScannedBusinessCardDAO.getBusinessCardByCreatedByIdAndStatus(userId, status) )));
        }
        
        else if(cardId == null){
            
            RestContext.response.responseBody 
                = Blob.valueOf(JSON.serialize( new DTOScannedBusinessCard.StatusMessage( 'errorMessage_string', '400' ) ));
            
        } 
        
        
        if(userId == null && status == null && cardId != null) {
            
            RestContext.response.responseBody = 
                Blob.valueOf(JSON.serialize( 
                    new DTOScannedBusinessCard.CardsList_2( ScannedBusinessCardDAO.getCardByCardId(cardId))));
        }
        
        else if(userId == null && status == null){
            
            RestContext.response.responseBody 
                = Blob.valueOf(JSON.serialize( new DTOScannedBusinessCard.StatusMessage( 'errorMessage_string', '400' ) ));
            
        }
        
    }
    
    public static void doPost() {
        
        System.debug('doPost()');
        
        Scanned_Business_Cards__c result = new Scanned_Business_Cards__c();
        
        RestRequest req = RestContext.request;
        
        RestResponse res = RestContext.response;
        
        ScannedBusinessCardDTO data = (ScannedBusinessCardDTO) JSON.deserialize(
            
            RestContext.request.requestBody.toString(),
            ScannedBusinessCardDTO.class
            
        );
        
        
        if(data.cardId != null) {
                        
            result = [SELECT Salutation__c, 
                      First_Name__c, Last_Name__c, 
                      Full_Name__c, Account_Name__c, 
                      Title__c, Phone__c, 
                      Mobile__c, Fax__c, 
                      Email__c, Website__c, 
                      Street1__c, Street2__c, 
                      City__c, State_Country__c, 
                      Country__c, Postcode__c, Address__c 
                      FROM Scanned_Business_Cards__c WHERE Id = :data.cardId];
           
            if(data.salutation != null) {
                result.Salutation__c = data.salutation;
            }
            if(data.firstName != null) {
                result.First_Name__c = data.firstName;
            }
            if(data.lastName != null) {
                result.Last_Name__c = data.lastName;
            }
            if(data.accountName != null) {
                result.Account_Name__c = data.accountName;
            }
            if(data.title != null) {
                result.Title__c = data.title;
            }
            if(data.phone != null) {
                result.Phone__c = data.phone;
            }
            if(data.mobile != null) {
                result.Mobile__c = data.mobile;
            }
            if(data.fax != null) {
                result.Fax__c = data.fax;
            }
            if(data.email != null) {
                result.Email__c = data.email;
            }
            if(data.website != null) {
                result.Website__c = data.website;
            }
            if(data.street1 != null) {
                result.Street1__c = data.street1;
            }
            if(data.street2 != null) {
                result.Street2__c = data.street2;
            }
            if(data.city != null) {
                result.City__c = data.city;
            }
            if(data.stateCountry != null) {
                result.State_Country__c = data.stateCountry;
            }
            if(data.country != null) {
                result.Country__c = data.country;
            }
            if(data.postcode != null) {
                result.Postcode__c = data.postcode;
            }
            if(data.notes != null) {
                result.Notes__c = data.notes;
            }
            if(data.createdById != null) {
                result.Created_By_Id__c = data.createdById;
            }
            if(data.status != null) {
                result.Status__c = data.status;
            }
            if(data.accountId != null) {
                result.Account__c = data.accountId;
            }
            if(data.contactId != null) {
                result.Contact__c = data.contactId;
            }
                        
        }
        
        else {
                        
            result.Salutation__c = data.salutation;
            result.First_Name__c = data.firstName;
            result.Last_Name__c = data.lastName;
            result.Account_Name__c = data.accountName;
            result.Title__c = data.title;
            result.Phone__c = data.phone;
            result.Mobile__c = data.mobile;
            result.Fax__c = data.fax;
            result.Email__c = data.email;
            result.Website__c = data.website;
            result.Street1__c = data.street1;
            result.Street2__c = data.street2;
            result.City__c = data.city;
            result.State_Country__c = data.stateCountry;
            result.Country__c = data.country;
            result.Postcode__c = data.postcode;
            result.Notes__c = data.notes;
            result.Created_By_Id__c = data.createdById;
            result.Status__c = data.status;
            result.Account__c = data.accountId;
            result.Contact__c = data.contactId;
        }        
        
        try{
            
            upsert result;
                        
            RestContext.response.responseBody = 
                Blob.valueOf(JSON.serialize( 
                    new DTOScannedBusinessCard.Status_CardsIsCreated( '200', result.Id)));
            
            System.debug('170 RestContext.response.responseBody = ' + RestContext.response.responseBody);
            
            
            
        } catch(DMLException e) {
            
            RestContext.response.responseBody 
                = Blob.valueOf(JSON.serialize( new DTOScannedBusinessCard.StatusMessage( 'errorMessage', e.getMessage() ) ));
            
        }
    }
}