Salesforce – RESTové API – jak na to?

RESTové API je elegantním způsobem, jak se Salesforce komunikovat z naší vlastní aplikace. Pokud máme vlastní IS nebo jen chceme se Salesforce programově komunikovat, RESTové rozhraní je pro svou širokou použitelnost výborným adeptem.

Pro komunikaci se Salesforce si nejprve zajistíme potřebné přihlašovací údaje. Budeme potřebovat celkem 5 údajů. (Vzhledem k techničnosti celé věci budeme používat anglické názvy a screenshoty.)

Username Přihlašovací jméno uživatele, pod kterým budeme se Salesforce pracovat
Password Přihlašovací heslo uživatele, pod kterým budeme se Salesforce pracovat
Security Token Security token si vygenerujeme v Salesforce v prostředí uživatelského nastavení. V „My Settings“ najdeme položku „Reset My Security Token“ a kliknutím na tlačítko „Reset Security Token“ si jej necháme vygenerovat. Salesforce nám jej zašle do emailu.

Client ID a
Client Secret
Pro získání autentizačních „Client ID“ a „Client Secret“ musíme v Salesforce vytvořit tzv. „Connected App“. Nastavení nalezneme v „Setup“ -> „Create“ -> „Apps“ -> „Connected Apps“, kde vytvoříme nový záznam. V sekci API povolíme „Enable OAuth Settings“ čímž se nám odkryjí další nastavení. Vyplníme vše povinné, do „Callback URL“ zadáme volitelnou lokální URL, pro naši implementaci tento callback nebude použit, takže nemusí jít o existující URL. Po uložení vytvořené „Connected App“ budeme mít k dispozici vygenerované „Client ID“ a „Client Secret“.

 

Údaje v tabulce výše nyní použijeme v konkrétní implementaci RESTového přístupu. Zde se podíváme na 2 příklady implementace, jedno v prostředí jazyka JAVA použitím webového frameworku Spring Boot a druhé použitím jazyka Elixir.

A) JAVA (Spring Boot)

Použitá knihovna: https://github.com/jesperfj/force-rest-api

Jak na to? (Návod není zcela vyčerpávající, pokrývá nicméně všechny podstatné kroky)

  • vytvoříme si nový Spring Boot projekt přes službu http://start.spring.io/ . Volíme si Gradle projekt, takže v konfiguračním souboru pak budeme potřebovat tyto závislosti:

  • projekt si stáhneme v ZIPu, rozbalíme a otevřeme například v IntelliJ.
  • v Spring Boot projektu si pro účely používání sdíleného připojení na Salesforce vytvoříme @Service třídu, jejíž instanci nám systém vytvoří jako „singleton“. (poznámka: heslo pro přístup do Salesforce musíme uvádět ve tvaru, kdy spojíme samotné heslo a security token. )

  • Nyní již jen potřebujeme vyzkoušet celé řešení pomocí jednoduchého controlleru, který s námi bude přes webové rozhraní komunikovat. Pro zjednodušení jsme zde použili RESTový controller, bude nám tak do prohlížeče posílat do JSONu konvertovaná původní data ze Salesforce. Příkladový controller, pomocí které vypíšeme seznam Accounts, může vypadat například takto.

  • Po nastartování SpringBoot projektu se na seznam položek vytažených ze Salesforce dostaneme pomocí URL  http://localhost:8080/sf/accounts

 

B) Elixir (BEAM/OTP platform)

Použitá knihovna: https://github.com/jeffweiss/forcex

Jak na to? (Návod není zcela vyčerpávající, pokrývá nicméně všechny podstatné kroky)

  • s Elixirem nebudeme vytvářet webový projekt, ale využijeme klasický Elixir projekt vytvořený mix příkazem pomocí:
  • do souboru mix.exs přidáme potřebné závislosti, tedy odkaz na knihovnu

  • … a přes „mix deps.get“ si závislosti dotáhneme.
  • nyní přidáme do config\config.exs konfiguraci s údaji, které pro přístup do Salesforce potřebujeme

    Patřičné položky nahradíme našimi údaji.
  • Dle návodu spustíme sérii akcí:
  • nyní bychom měli mít vše připraveno k tomu, abychom si spustili projekt na konzoli přes „iex -S mix“
  • na konzoli pak můžeme RESTové API do Salesforce vyzkoušet například takto (další detaily použití nalezneme v dokumentaci knihovny)

 

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *