symetra symetra
Publikované v kategóriiTipy a triky

Čo je API a ako k nemu pristupuje Odoo

API (Application Programming Interface) je aplikačné rozhranie, ktoré umožňuje rôznym aplikáciám vzájomne komunikovať. Vďaka API si systémy dokážu vymieňať dáta a vykonávať úlohy bez toho, aby do nich musel zasahovať používateľ.

Jednoducho povedané, API funguje ako sprostredkovateľ v prípadoch, keď jedna aplikácia žiada druhú o informácie alebo o vykonanie akcie ako napríklad načítanie objednávky, vytvorenie faktúry alebo aktualizácia údajov.

Aké API podporuje Odoo?

Odoo podporuje niekoľko API protokolov, čím umožňuje komunikáciu s externými aplikáciami, e-commerce riešeniami, analytickými nástrojmi či webovými portálmi. Typy podporovaných API protokolov sú:

1.  RPC API (Remote Procedure Call)
2. JSON-2 API
3. REST API
4. GraphQL API

1. RPC API

Odoo natívne podporuje RPC API (Remote Procedure Call) cez XML-RPC a JSON-RPC protokoly. Tento prístup umožňuje externe volať metódy Odoo modulov a pracovať s dátami napr. vytvárať, čítať alebo upravovať záznamy.

Zároveň, ale musím dodať, že Odoo považuje XML-RPC a JSON-RPC API za zastarané. Ich postupné odstránenie plánuje od verzie Odoo 20, ktorej uvedenie sa očakáva koncom roka 2026, pričom staršie protokoly v nej má nahradiť JSON-2 API.

Výhody RPC API:

  • rýchle a nenáročne spracovanie volaní
  • podpora plného rozsahu funkcií Odoo pre prácu s dátami umožňuje rýchle nasadenie bez dodatočných programovacích zásahov. Externá aplikácia má tak široký prístup k dátam a funkcionalite Odoo

Nevýhody RPC API:

  • hrozia tu bezpečnostné riziká, pri nesprávnom nastavení oprávnení môže dôjsť k neúmyselným zásahom do dát
  • všetky volania tečú cez jeden endpoint (url) čo v prípade veľkých aplikácií môže spôsobiť horšie škálovanie resp. monitoring
  • keďže pracuje na úrovni funkcií (t. j. volá metódy backendu ako CREATE, SEARCH, DELETE a pod.) neexistuje štandardizovaná endpoint dokumentácia ako napr. pri REST API

2. JSON-2 API

JSON-2 API je novší spôsob komunikácie s Odoo predstavený už vo verzii 19 ako náhrada za staršie protokoly XML-RPC a JSON-RPC API. Ide o moderné HTTP API, ktoré využíva JSON formát na prenos dát. Je navrhnuté tak, aby bolo prehľadnejšie a lepšie zapadalo do súčasných integračných štandardov.

Výhody JSON-2 API

  • modernejší a štandardizovaný spôsob komunikácie (JSON + HTTP)
  • lepšia práca s chybami vďaka HTTP status kódov
  • prehľadnejšia štruktúra volaní oproti RPC prístupu

Nevýhody JSON-2 API

  • stále ide skôr o špecifické Odoo API než plnohodnotné REST API
  • menšia flexibilita oproti REST API, pretože je viazané na vnútornú logiku systému, nie na vlastné navrhnuté endpointy

3. REST API

REST API (representational state transfer) interface je štandardný spôsob, ako medzi sebou komunikujú moderné aplikácie cez webové rozhrania. Využíva HTTP požiadavky (napr. GET, POST, PUT, DELETE) na prácu s dátami a je dnes najrozšírenejším prístupom pri integráciách.

Aj keď Odoo ERP systém neponúka plnohodnotné REST API ako natívnu súčasť pre všetky use-case scenáre, je možné ho implementovať pomocou vlastných modulov alebo využiť hotové riešenia tretích strán.

Výhody REST API

  • bežný štandard v moderných integráciách, s ktorým počíta väčšina externých systémov a služieb
  • prehľadná štruktúra endpointov, kde má každá operácia vlastnú url, čo zjednodušuje orientáciu aj dokumentáciu
  • jednoduchšia integrácia s externými systémami, keďže frontendy, mobilné aplikácie a rôzne SaaS služby s REST API bežne pracujú
  • dobrá škálovateľnosť a monitoring – jednotlivé endpointy je možné samostatne sledovať a optimalizovať
  • možnosť presne definovať, aké dáta a logika budú dostupné, poskytuje výbornú flexibilitu pri návrhu riešení

Nevýhody REST API

  • nie je plne dostupné „out-of-the-box“ v Odoo a vyžaduje implementáciu
  • návrh endpointov a bezpečnosti si vyžaduje viac práce než RPC, čo sa odrazí na vyššej počiatočnej investícii
  • potreba vytvoriť API štruktúru s premysleným namingom, dátovými štruktúrami a prístupovými právami

REST API odporúčame využívať pri projektoch, kde je dôležitá dlhodobá udržateľnosť, integrácia s externými systémami alebo pri vývoji vlastných aplikácií (napr. mobilné aplikácie a portály).
Ako praktické riešenie na rýchle sprístupnenie REST endpointov nad dátami v Odoo sa nám osvedčil modul MuK REST API for Odoo. Vďaka nemu sa dá elegantne vyhnúť budovaniu celého API od začiatku.

4. GraphQL API

Alternatívny prístup k návrhu API predstavuje GraphQL, pretože umožňuje presne definovať, aké dáta potrebujeme. Na rozdiel od REST API, kde sú dáta pevne viazané na jednotlivé endpointy, GraphQL umožňuje získať všetky potrebné dáta jedným dotazom.

Systém Odoo nemá GraphQL API ako štandardnú súčasť, no v rámci Odoo Apps Store existuje viacero modulov, ktoré umožňujú tento spôsob komunikácie implementovať.

V praxi sa GraphQL v Odoo ekosystéme využíva zriedkavejšie. Svoj význam má najmä v špecifických prípadoch pri komplexných frontend aplikáciách alebo integráciách, kde je potrebná vysoká flexibilita pri práci s dátami.

Výhody GraphQL

  • klient si presne definuje, aké dáta potrebuje
  • menej požiadaviek na server, pretože jedným dotazom je možné získať viac dát

Nevýhody GraphQL

  • komplexnejšia implementácia, ktorá je náročnejšia na návrh aj údržbu
  • nie je natívne podporované v Odoo, nutnosť použiť externé moduly alebo vlastné riešenie
  • menšia rozšírenosť v Odoo ekosystéme, z čoho vyplýva menej skúseností, príkladov a best practices

WebSocket a dáta v reálnom čase

Popri štandardných API prístupoch existuje aj technológia WebSocket, ktorá umožňuje obojsmernú komunikáciu medzi klientom a serverom v reálnom čase. Na rozdiel od klasických API volaní, kde klient posiela požiadavku a čaká na odpoveď, WebSocket udržiava otvorené spojenie, vďaka čomu môže server aktívne posielať dáta klientovi bez potreby opakovaných requestov.

V Odoo sa WebSocket využíva najmä interne (napr. pre notifikácie alebo live aktualizácie), no pri externých integráciách sa používa skôr ako doplnok k API.

V akých prípadoch sa WebSocket využíva:

  • live dashboardy a reporting
  • notifikácie v reálnom čase
  • chaty alebo kolaboratívne aplikácie

Nevýhody technológie WebSocket:

  • vyššia implementačná náročnosť
  • nevhodné pre bežné CRUD operácie (CREATE, READ, UPDATE, DELETE)
  • potreba riešiť škálovanie a správu spojení

Aký typ API použiť v prípade Odoo?

Pri výbere API je dôležité zohľadniť najmä to, či ide o krátkodobé riešenie alebo dlhodobú integráciu. V prostredí Odoo sa dnes ako najperspektívnejšie javia JSON-2 API a REST API, zatiaľ čo RPC API má zmysel skôr pri už existujúcich projektoch, ktoré sú postavené na staršej verzii Odoo.

Pri REST prístupe sa v praxi často využíva modul MuK REST API for Odoo, ktorý výrazne zjednodušuje implementáciu. Rámcovo by sme vhodnosť jednotlivých riešení mohli rozdeliť nasledovne:

Prípad Odporúčaný prístup Prečo Alternatíva
Rýchla interná integrácia / skript JSON-2 API Najrýchlejšie nasadenie bez potreby vývoja API vrstvy
Prepojenie s externým systémom (e-shop, SaaS) REST API Štandardizované rozhranie, jednoduchá integrácia s inými systémami JSON-2 API
Mobilná aplikácia / frontend aplikácia REST API Prehľadné endpointy, široká podpora v nástrojoch GraphQL
Komplexný frontend (veľa dát, rôzne pohľady) GraphQL Flexibilita pri načítavaní dát, menej requestov REST API
Real-time notifikácie / live dáta WebSocket (doplnok) Okamžitá komunikácia bez potreby opakovaných requestov

Čo si je v prípade API potrebné uvedomiť

Výber správneho API prístupu má zásadný vplyv na úspech celej integrácie. Nejde len o technické rozhodnutie, ale aj o otázku budúcej rozšíriteľnosti, bezpečnosti a nákladov na údržbu.

Aj keď má každý projekt svoje špecifiká, v prípravnej fáze si radšej veľmi dobre zvážte, či namiesto lákavého jednoduchšieho riešenia nezvoliť modernejší prístup. JSON-2 alebo REST API jednoducho lepšie reflektujú súčasné požiadavky na integrácie.

Ak si nie ste istí, ktorý prístup je pre váš projekt najvhodnejší, v symetre vám radi pomôžeme s analýzou a návrhom optimálneho riešenia. Na základe vašich potrieb navrhneme API komunikáciu tak, aby bola nielen funkčná, ale aj dlhodobo udržateľná.


Martin Bačo

Martin Bačo

CEO

V roku 2011 som založil herné štúdio, ktoré narástlo do softvérovej spoločnosti s vyše 30 zamestnancami. Riadil som desiatky projektov od webových aplikácií, až po digitalizácie podnikov rôznych veľkostí. Pred pár rokmi som objavil odoo. Odvtedy pred zákazkovým vývojom softvéru preferujem nasadzovanie tohto jedinečného open source produktu.


Ďalšie články

Vyhnite sa 25% príplatku za Odoo licencie

Tipy a triky 11.3.2026

Vyhnite sa 25% príplatku za Odoo licencie

Viete, na akej verzii Odoo funguje vaša firma? Ak patrí do kategórie legacy, mali by ste čím skôr zvážiť jej upgrade alebo sa pripraviť na navýšenie poplatku za licencie.

Vendor lock-in vám s Odoo nehrozí

Tipy a triky 30.12.2025

Vendor lock-in vám s Odoo nehrozí

Držte krok s vývojom informačných systémov a nedovoľte, aby taktika vendor lock-in bola uplatňovaná voči vám. Môže spomaliť zavádzanie inovácií, ktoré sú často kľúčom k celkovému úspechu firmy na trhu.

Späť na blog