You need to sign in to do that
Don't have an account?
jishan roy
How to add callout in lwc
how to add this apex callouts in js can anybody help me?
Here is my code:
apex class:
public class personDemoController {
@AuraEnabled
public static void calloutMethod(){
Http http = new Http();
HttpRequest request = new HttpRequest();
request.setEndpoint('https://lookup.binlist.net/45717360');
request.setMethod('GET');
HttpResponse response = http.send(request);
String body = response.getbody();
system.debug(body);
}
}
js:
import { LightningElement} from 'lwc';
import calloutMethod from '@salesforce/apex/personDemoController.calloutMethod';
import { createRecord } from 'lightning/uiRecordApi';
import conMainObject from '@salesforce/schema/Contact';
import conFirstName from '@salesforce/schema/Contact.FirstName';
import conLastName from '@salesforce/schema/Contact.LastName';
import conPhone from '@salesforce/schema/Contact.Phone';
import conEmail from '@salesforce/schema/Contact.Email';
import conDescription from '@salesforce/schema/Contact.Description';
import conCard_Name__c from '@salesforce/schema/Contact.Card_Name__c';
//import conPrepaid__c from '@salesforce/schema/Contact.Prepaid__c';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { NavigationMixin } from 'lightning/navigation';
export default class IntegrateComponentLWC extends NavigationMixin(LightningElement) {
firstName = '';
lastName = '';
phoneNo= '';
emailId='';
descriptionVal='';
//prepaid__c='';
card_Name__c='';
contactChangeVal(event) {
console.log(event.target.label);
console.log(event.target.value);
if(event.target.label=='First Name'){
this.firstName = event.target.value;
}
if(event.target.label=='Last Name'){
this.lastName = event.target.value;
}
if(event.target.label=='Phone'){
this.phoneNo = event.target.value;
}
if(event.target.label=='Email'){
this.emailId = event.target.value;
}
if(event.target.label=='Card_Name__c'){
this.cardName = event.target.value;
}
if(event.target.label=='Description'){
this.descriptionVal = event.target.value;
}
// if(event.target.label=='Prepaid__c'){
// this.prepaid__c = event.target.value;
// }
}
insertContactAction(){
console.log(this.selectedAccountId);
const fields = {};
fields[conFirstName.fieldApiName] = this.firstName;
fields[conLastName.fieldApiName] = this.lastName;
fields[conPhone.fieldApiName] = this.phoneNo;
fields[conEmail.fieldApiName] = this.emailId;
fields[conCard_Name__c.fieldApiName] = this.cardName;
fields[conDescription.fieldApiName] = this.descriptionVal;
//fields[conPrepaid__c.fieldApiName] = this.prepaid__c;
const recordInput = { apiName: conMainObject.objectApiName, fields };
createRecord(recordInput)
.then(contactobj=> {
this.contactId = contactobj.id;
this.dispatchEvent(
new ShowToastEvent({
title: 'Success',
message: 'Contact record has been created',
variant: 'success',
}),
);
this[NavigationMixin.Navigate]({
type: 'standard__recordPage',
attributes: {
recordId: contactobj.id,
objectApiName: 'Contact',
actionName: 'view'
},
});
})
.catch(error => {
this.dispatchEvent(
new ShowToastEvent({
title: 'Error creating record',
message: error.body.message,
variant: 'error',
}),
);
});
}
handleClick(){
calloutMethod({}).then(resp => {
this.pictureUrl = JSON.parse(resp).message;
})
}
}
html:
<template>
<lightning-card>
<div slot="title">
<h3>
<lightning-icon icon-name="standard:contact" size="small"></lightning-icon> Insert a Contact Record in LWC
</h3>
</div>
<div class="slds-grid slds-wrap">
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="First Name" value={firstName} onchange={contactChangeVal}></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Last Name" value={lastName} onchange={contactChangeVal}></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Phone" value={phoneNo} onchange={contactChangeVal}></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Email" value={emailId} onchange={contactChangeVal} ></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Prepaid" value={Prepaid__c} onchange={contactChangeVal} ></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Description" value={descriptionVal} onchange={contactChangeVal}></lightning-input>
</div>
</div>
</div>
<div slot="footer">
<lightning-button label="Save" variant="brand" onclick={insertContactAction}></lightning-button>
</div>
<lightning-button variant="success" label="Generate card details" onclick={handleClick}></lightning-button>
<br/> <br/>
<!-- </div> -->
</lightning-card>
</template>
Here is my code:
apex class:
public class personDemoController {
@AuraEnabled
public static void calloutMethod(){
Http http = new Http();
HttpRequest request = new HttpRequest();
request.setEndpoint('https://lookup.binlist.net/45717360');
request.setMethod('GET');
HttpResponse response = http.send(request);
String body = response.getbody();
system.debug(body);
}
}
js:
import { LightningElement} from 'lwc';
import calloutMethod from '@salesforce/apex/personDemoController.calloutMethod';
import { createRecord } from 'lightning/uiRecordApi';
import conMainObject from '@salesforce/schema/Contact';
import conFirstName from '@salesforce/schema/Contact.FirstName';
import conLastName from '@salesforce/schema/Contact.LastName';
import conPhone from '@salesforce/schema/Contact.Phone';
import conEmail from '@salesforce/schema/Contact.Email';
import conDescription from '@salesforce/schema/Contact.Description';
import conCard_Name__c from '@salesforce/schema/Contact.Card_Name__c';
//import conPrepaid__c from '@salesforce/schema/Contact.Prepaid__c';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { NavigationMixin } from 'lightning/navigation';
export default class IntegrateComponentLWC extends NavigationMixin(LightningElement) {
firstName = '';
lastName = '';
phoneNo= '';
emailId='';
descriptionVal='';
//prepaid__c='';
card_Name__c='';
contactChangeVal(event) {
console.log(event.target.label);
console.log(event.target.value);
if(event.target.label=='First Name'){
this.firstName = event.target.value;
}
if(event.target.label=='Last Name'){
this.lastName = event.target.value;
}
if(event.target.label=='Phone'){
this.phoneNo = event.target.value;
}
if(event.target.label=='Email'){
this.emailId = event.target.value;
}
if(event.target.label=='Card_Name__c'){
this.cardName = event.target.value;
}
if(event.target.label=='Description'){
this.descriptionVal = event.target.value;
}
// if(event.target.label=='Prepaid__c'){
// this.prepaid__c = event.target.value;
// }
}
insertContactAction(){
console.log(this.selectedAccountId);
const fields = {};
fields[conFirstName.fieldApiName] = this.firstName;
fields[conLastName.fieldApiName] = this.lastName;
fields[conPhone.fieldApiName] = this.phoneNo;
fields[conEmail.fieldApiName] = this.emailId;
fields[conCard_Name__c.fieldApiName] = this.cardName;
fields[conDescription.fieldApiName] = this.descriptionVal;
//fields[conPrepaid__c.fieldApiName] = this.prepaid__c;
const recordInput = { apiName: conMainObject.objectApiName, fields };
createRecord(recordInput)
.then(contactobj=> {
this.contactId = contactobj.id;
this.dispatchEvent(
new ShowToastEvent({
title: 'Success',
message: 'Contact record has been created',
variant: 'success',
}),
);
this[NavigationMixin.Navigate]({
type: 'standard__recordPage',
attributes: {
recordId: contactobj.id,
objectApiName: 'Contact',
actionName: 'view'
},
});
})
.catch(error => {
this.dispatchEvent(
new ShowToastEvent({
title: 'Error creating record',
message: error.body.message,
variant: 'error',
}),
);
});
}
handleClick(){
calloutMethod({}).then(resp => {
this.pictureUrl = JSON.parse(resp).message;
})
}
}
html:
<template>
<lightning-card>
<div slot="title">
<h3>
<lightning-icon icon-name="standard:contact" size="small"></lightning-icon> Insert a Contact Record in LWC
</h3>
</div>
<div class="slds-grid slds-wrap">
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="First Name" value={firstName} onchange={contactChangeVal}></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Last Name" value={lastName} onchange={contactChangeVal}></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Phone" value={phoneNo} onchange={contactChangeVal}></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Email" value={emailId} onchange={contactChangeVal} ></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Prepaid" value={Prepaid__c} onchange={contactChangeVal} ></lightning-input>
</div>
</div>
<div class="slds-p-horizontal--small slds-col slds-size_6-of-12 slds-m-bottom--medium">
<div class="slds-form-element">
<lightning-input label="Description" value={descriptionVal} onchange={contactChangeVal}></lightning-input>
</div>
</div>
</div>
<div slot="footer">
<lightning-button label="Save" variant="brand" onclick={insertContactAction}></lightning-button>
</div>
<lightning-button variant="success" label="Generate card details" onclick={handleClick}></lightning-button>
<br/> <br/>
<!-- </div> -->
</lightning-card>
</template>
Please Add this code to your wlc js file after that you can able to get data from API in the js file
var requestOptions = {
method: 'GET',
redirect: 'follow'
};
fetch("https://lookup.binlist.net/45717360", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
I hope it will help full for you. if it is helpful please mark the best answer
thank you
Hello Jishan Roy,
Please read the below blog which will help you make callouts from JS. You need to create CSP trusted site and Named Credentials (only for private endpoint).
https://ayushsaxenablog.blogspot.com/2023/01/api-callouts-from-lightning-web.html
Please mark the best answer if it helps you.
Thank You