Skip to main content

Latest Post

Record Types & Page Layout Strategy

  Record Types & Page Layout Strategy 💬 In plain words:   Record Types let one object act like different forms for different teams. Different picklist values, page layouts, and processes — same Account object. Use them for truly different business processes. Not for cosmetic layout changes. 📌 Example:   One Account object, two businesses: 'Retail Customer' record type shows B2C picklist values and layout. 'Enterprise Client' shows contract fields and a different sales process. Same table, two costumes. 🧠 One object, many costumes:   A Record Type is a costume on the same object — different picklists and layouts, same table underneath. Concept Record Types split one object into business variants. •   Each type can carry its own subset of picklist values, its own business process — Lead, Case and Opportunity stages — and its own page layout per profile. •   Lightning has changed the calculus. Dynamic Forms and conditional comp...

Creating a REST Apex Web Service for POST Requests with JSON Payload

Rest APIs enable us to perform various operations such as creating and deleting, among others. In typical situations, when the data is passed as a parameter in the REST method, it becomes straightforward to manipulate, as demonstrated in the following example.

@RestResource(urlMapping='/api/CreateContact/*')

global with sharing class RestApexAPIClass

{

    @HttpPost

    global static String doPost(String name,String phone ) {

        Contact con = new Contact();

        con.name= name;

        con.phone=phone;

        insert con;

        return con.id;

    }

}

The "doPost" method accepts a name and phone as input parameters and proceeds to assign them to the contact object, facilitating the creation of a fresh contact within the Salesforce platform.

The issue arises when data is received from an external system in the form of JSON. The question then arises: how can we obtain and parse that JSON data?  Fortunately, this problem can be easily solved, as demonstrated in the following example:

@RestResource(urlMapping='/api/CreateAccount/*')
global with sharing class MyFirstRestAPIClass
{
    @HttpPost
    global static void doPost( ) {
        RestRequest req = RestContext.request;
        Blob body = req.requestBody;
        String requestString = body.toString();
        fromJSON ss = (fromJSON)JSON.deserialize(requestString,fromJSON.class);
        system.debug(SS);
        
    }

}

//Json Parse class

global class fromJSON{
    global cls_invoiceList[] invoiceList;
    global class cls_invoiceList {
        public string totalPrice; 
        public String statementDate;
        public cls_lineItems[] lineItems;
        public string invoiceNumber;
    }
    global class cls_lineItems {
        public string UnitPrice;
        public string Quantity;
        public String ProductName;
    }
    global static fromJSON parse(String json){
        return (fromJSON) System.JSON.deserialize(json, fromJSON.class);
    }

   
}

The provided code is performing the following actions:
  • It retrieves the current REST request using RestContext.request and assigns it to the req variable.
  • It retrieves the request body as a Blob using req.requestBody and assigns it to the body variable.
  • It converts the Blob into a string representation using body.toString() and assigns it to the requestString variable.
  • It uses the JSON.deserialize method to convert the requestString into an instance of the fromJSON class. The fromJSON class is expected to represent the structure of the JSON data.
  • It assigns the deserialized object to the variable ss.
  1. Finally, it logs the value of ss using System.debug().
In summary, the code is extracting the JSON data from the request body, deserializing it into an object of a specific class (fromJSON), and then printing the resulting object for debugging purposes.

Json payload in post apex rest


Popular Posts

Salesforce LWC Code for Multi-Select Lookup

Introduction: In Salesforce Lightning Web Components (LWC), implementing a multi-select lookup field can enhance the user experience and provide greater flexibility for selecting multiple related records. In this blog post, we will walk through the process of creating a multi-select lookup field using LWC. We will cover the required code snippets and provide step-by-step instructions to help you implement this functionality in your Salesforce org.