0
votes

I need to invoke a custom rest api in Salesforce. Could someone please provide any details how to invoke it from mule. Please find my mule configuration and suggest if I am doing anything wrong.

Salesforce Custom Rest Class

@RestResource(urlMapping='/customOrder')
global with sharing class CustomOrder {


    @HttpPost
    global static Account createOrder() {
      RestRequest req = RestContext.request;
      RestResponse res = RestContext.response;
      Map<String, Object> params = (Map<String, Object>) JSON.deserializeUntyped(req.requestBody.toString());
      ----
      ---
      Account resultAcc;
      ---
      return resultAcc
    }
  }

Request payload

{
  "Obj1": [
    {
      "key": "data for key",
      "value": "some value"
    },
    {
      "key": "leadSource",
      "value": "Web"
    },
  "obj2": [
    {
      "key": "data for key",
      "value": true
    }
  ],
  "key1": false
}

Mule Config for salesforce

<sfdc:config-oauth-user-pass name="Salesforce" consumerKey="XXXX" consumerSecret="XXX" username="XXX" password="XXX" tokenEndpoint="xxxxx" disableSessionInvalidation="true" doc:name="Salesforce: OAuth 2.0 Username-Password" fetchAllApexRestMetadata="true" >
       <sfdc:apex-class-names>
            <sfdc:apex-class-name>CustomOrder</sfdc:apex-class-name>
        </sfdc:apex-class-names>
    </sfdc:config-oauth-user-pass>

    <sfdc:invoke-apex-rest-method config-ref="Salesforce" restMethodName="CustomOrder||createOrder\^customOrder\^HttpPost\^Account\^" doc:name="Salesforce"/>

How is the best way to invoke this api from mulesoft

1

1 Answers

0
votes

For integration Mule with Salesforce via REST API you can use Salesforce Connector.