Rekordok lekérése a Salesforce Rest API használatával

Rekordok Lekerese A Salesforce Rest Api Hasznalataval



Ebben az útmutatóban megvitatjuk, hogyan lehet lekérni a Salesforce rekordokat a REST API-val a Salesforce Workbench segítségével. Ennek az útmutatónak a részeként megvitatjuk, hogyan kell használni a Workbench-et, lekérni az adott rekordokat az sObject használatával, és több rekordot lekérni egy objektumból a lekérdezés segítségével, és lekérni a rekordokat az Apex egyéni REST API megírásával. A bemutatóhoz a Salesforce Standard Case objektumot fogjuk használni. Nincs szükség esetrekord létrehozására a Salesforce-háttérrendszerben. A meglévő szabványos esetrekordot használjuk, amelyet a Salesforce biztosít.

Bemutatkozik a Workbench

A Workbench nem hivatalos Salesforce.com termék. De a Salesforce-t fogjuk használni az adatkezelési műveletek elvégzésére, például a kijelölés, beszúrás, felhelyezés, frissítés és törlésre, mindössze bejelentkezve Salesforce-fiókjába (a Sandbox és a termelést egyaránt támogatja). Ez a hivatalos webhely a Workbench Salesforce-szal való bejelentkezéséhez: https://workbench.developerforce.com/login.php .

Jelenleg csak az API-verzió maradjon meg, és kattintson a „Bejelentkezés Salesforce-szal” gombra.









Szükségünk van a REST Explorerre. Lépjen a „Segédprogramok” fülre, és kattintson a „REST Explorer” elemre.







Az alábbi ábrán látható felhasználói felületet fogja látni. A teljes útmutatóban szereplő rekordok Salesforce-ból való lekéréséhez a GET-et kell választanunk. Meg kell adnunk azt az URI-t, amely lekéri a Salesforce rekordokat, és kattintson a „Végrehajtás” gombra.



Adott rekord lekérése Salesforce-azonosítóval

A Salesforce rekordazonosító alapján lekérhetjük a Salesforce teljes rekordját. Az URI-t a következőképpen kell beállítanunk:

/ szolgáltatások / adat / v56.0 / kiabál / objectAPIName / id

Itt az „objectAPIName” a Salesforce Standard/Custom objektum, az „id” pedig a Salesforce-azonosítóra utal.

Visszatérés:

A HTTP/1.1 200 OK nyers választ fog kapni JSON formátumban, az alábbiak szerint:

{
'tulajdonságok' : {
'típus' :
'url' :
} ,
'terület' : Érték,
...
}

Példa:

Ebben a példában lekérjük az 5005i00000W4GM5AAN esetrekordot.

TÍPUS: / szolgáltatások / adat / v56.0 / kiabál / Ügy / 5005i00000W4GM5AAN

Eredmény:

Láthatjuk, hogy a válasz JSON formátumban jön létre.

Az eredményeket közvetlenül innen is megtekinthetjük:

Több rekord lekérése a lekérdezéssel

Ideje több rekordot lekérni a Salesforce objektumból. Korábban az objektumokat az URI-ban határoztuk meg. Itt meg kell adnunk egy lekérdezést, amely paraméterként veszi a lekérdezést.

URI: szolgáltatások / adat / v57.0 / lekérdezés / ? q =KIVÁLASZTÁS+mező1,mező2,....+objektumAPIName

A „+” jelet kell használnunk elválasztóként, hogy összekapcsoljuk a kulcsszavakat a lekérdezésben. Visszaadja a totalSize-t, és egy mappában rögzíti. Az egyes rekordok mappaneve: [1. tétel],…[n. tétel].

1. példa:
Adjuk vissza azokat a rekordokat, amelyek tartalmazzák a CaseNumber-t, az állapotot, a prioritást és a Case objektum leírását.

/ szolgáltatások / adat / v57.0 / lekérdezés / ? q =VÁLASZTÁS+Ügyszám,Állapot,Prioritás,Leírás+az+Esetből

Eredmény:

Ha rákattint az „Összes kibontása” gombra, látni fogja az összes rekordot attribútumokkal és értékekkel együtt.

Hadd mutassam meg az első és az utolsó felvételt:

2. példa:
Csak három rekordot adjunk vissza az első példában látható mezőkkel.

/ szolgáltatások / adat / v57.0 / lekérdezés / ? q =VÁLASZTÁS+Esetszám,Állapot,Prioritás,Leírás+a+eset+korlát+ 2

Eredmény:
A Case objektumban lévő első két rekord visszaadásra kerül.

3. példa:
Adjuk meg a WHERE feltételt abban a lekérdezésben, amely kijelöli az „Új” állapotú rekordokat.

/ szolgáltatások / adat / v57.0 / lekérdezés / ? q =VÁLASZTÁS+Esetszám,Állapot,Prioritás,Leírás+ahonnan+eset+hol+ Állapot = 'Új'

Eredmény:

Öt rekord létezik „Új” állapottal.

Egyéni pihenőforrás az Apexben

Használhatjuk a Salesforce Apex-et, amely visszaadja a rekordot a Salesforce objektumból, ha megadja az URI-t a Workbenchben. A REST Apexben való megírásához használnunk kell néhány megjegyzést, amelyek hozzáférnek a REST API-hoz az Apex osztályban. Győződjön meg arról, hogy az Apex osztályunknak globálisan statikusnak kell lennie.

1. @RestResource Annotation

Ez a megjegyzés arra szolgál, hogy engedélyezze, hogy melyik Apex osztály REST-erőforrásként jelenjen meg. Az urlMapping paramétert használja az URI megkeresésére a Workbenchben.

Szintaxis: @RestResource(urlMapping=’/Version/ApexClassName/’)

A „verzió” az Ön Workbench-verziója, például a V56.0, az „ApexClassName” pedig az Ön Apex-osztálya, amelyben a Rest API-erőforrások érintettek.

2. @HttpGet Annotation

Ez a megjegyzés arra szolgál, hogy engedélyezze, hogy melyik Apex osztály REST-erőforrásként jelenjen meg. Akkor hívják meg, amikor egy HTTP GET kérést küldenek a szervernek, és visszaadja a megadott erőforrást.

Szintaxis: @httpGet

1. példa: Egyparaméter

Írja be a „RestApi_Get_Record.apxc” Apex osztályt, amely magában foglalja a „Rest Get” metódust az azonosító, a CaseNumber, az állapot, a prioritás és az esetből származó eredet visszaadásához a Case objektumból.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
globális osztály RestApi_Get_Record {

// REST - Get Method
@ httpGet
globális statikus Case getCaseDetails ( ) {

// Objektum létrehozása számára Case objektum
Case case_obj = new Case ( ) ;
Térkép < String, String > paramsMap = RestContext.request.params;

// Szerezd meg a ügy id
String caseid =paramsMap.get ( 'input_id' ) ;

// SOQL lekérdezés, amely megteszi Visszatérés id ,Ügyszám,Állapot,Prioritás,Cseke származása innen
// a Case objektum
case_obj = [ válassza ki id ,CaseNumber,Status,Priority,Origin from Case, where Id =:caseid ] ;
Visszatérés case_obj;
}
}

URI és eredmény:

Lépjen a Workbench oldalra, és keresse meg a REST Explorert. Adja át az azonosítót 5002t00000Pdzr2AAB-ként az input_id paraméternek.

/ szolgáltatások / apexrest / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB

Magyarázat:

  • Hozzon létre egy objektumot a „case_obj” esethez.
  • Szerezze be a paramétereket a RestContext.request.params használatával.
  • Szerezze le az esetazonosítót a param input_id paraméterből, és tárolja ezt a caseid változóban.
  • Írja meg azt a SOQL-lekérdezést, amely a „caseid” eset Case objektumából adja vissza az id-t, a CaseNumber-t, az állapotot, a prioritást, az eredetet az esetből.
  • Adja vissza az esetobjektumot (case_obj).

2. példa: Több paraméter

Használja az előző Apex osztályt, és kapja meg a „Status” paramétert az azonosítóval együtt. Adja meg ezt a két paramétert a Workbench URI-ban, amelyet „&” választ el.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
globális osztály RestApi_Get_Record {

// REST - Get Method
@ httpGet
globális statikus Case getCaseDetails ( ) {

// Objektum létrehozása számára Case objektum
Case case_obj = new Case ( ) ;
Térkép < String, String > id_param = RestContext.request.params;
Térkép < String, String > status_param = RestContext.request.params;

// Szerelje be az id_param paramétert a case_id paraméterbe
String case_id = id_param.get ( 'input_id' ) ;
// Szerelje be a status_param paramétert a case_status paraméterbe
String case_status =status_param.get ( 'állapot' ) ;

case_obj = [ válassza ki id ,CaseNumber,Status,Priority,Origin from Case, where Id =:case_id and Status =: case_status ] ;
Visszatérés case_obj;
}
}

URI és eredmény:

Lépjen a Workbench oldalra, és keresse meg a REST Explorert. Adja meg a bemeneti_azonosítót 5002t00000PdzqwAAB-ként, az állapotot pedig „Closed”-ként az URI-ban.

/ szolgáltatások / apexrest / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB & állapot =Zárva

Következtetés

Három forgatókönyvet tárgyaltunk a Salesforce rekordok lekérésére a Salesforce REST API-n keresztül a Workbench használatával. Egy adott rekord visszaadásához meg kell adnunk az sObject-et az id paraméterként történő átadásával az URI-ban. Hasonlóképpen adjuk át a lekérdezési paramétereket, hogy konkrét rekordokat kapjunk. Az Apex segítségével létrehozhatunk saját „Get” metódusunkat a rekord kiválasztásához egyetlen/több paraméter alapján.