Hlavná dokumentácia Odoo uvádza, že stará RPC služba databázy je v Odoo 20 odstránená. Širšie API XML-RPC a JSON-RPC sú od verzie 19.0 zastarané, ale Odoo 20 neodstraňuje každú starú službu. Odoo dokumentuje služby common a object ako dostupné až do Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Tímy integrácie preto musia identifikovať službu použitú každým externým pripojením, namiesto toho, aby považovali podporu starého RPC za jednu funkciu s jedným dátumom odstránenia.
Stránka podujatia Odoo pre Ameriku uviedla, že Odoo 20 bude vydané počas podujatia v San Franciscu 2. a 3. septembra 2026. (Oxp26 Americas Introduction) Plánovanie aktualizácie môže už teraz zohľadniť zdokumentované odstránenie služby databázy, ale rozhodnutia pre produkciu by sa mali overiť podľa finálnej dokumentácie vydania Odoo 20.
Odstránenie sa týka konkrétnej služby
Odoo označuje `/xmlrpc`, `/xmlrpc/2` a `/jsonrpc` ako staré koncové body, ktoré sú zastarané od verzie 19.0. V rámci týchto API je služba databázy v Odoo 20 odstránená, zatiaľ čo služby common a object sú naplánované na zachovanie až do Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Integrácia, ktorá používa zachovanú službu, môže po aktualizácii na Odoo 20 naďalej fungovať, ale samotný koncový bod nezaručuje kompatibilitu.
Systém môže prostredníctvom starého RPC rozhrania používať rôzne služby. Kontrola integrácie by preto mala zaznamenať koncový bod aj volanú službu. Opísať aplikáciu iba ako XML-RPC alebo JSON-RPC integráciu neukazuje, či závisí od operácie odstránenej v Odoo 20. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)
Pokračujúca dostupnosť služieb common a object je dočasná. Odoo plánuje obe odstrániť v Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Tímy môžu oddeliť urgentnú prácu na volaniach služby databázy od migrácie zachovaných služieb, ale obe si vyžadujú plán.
JSON-2 mení zmluvu požiadavky
Odoo dokumentuje JSON-2 ako náhradné API. Jeho formát koncového bodu je `/json/2/<model>/<method>`, pričom model a metóda sú zahrnuté v URL. (Odoo master Docs: Reference External API) Migrácia preto zahŕňa viac než len nahradenie základnej cesty v existujúcom RPC klientovi. Každú operáciu je potrebné namapovať na príslušnú cestu modelu a metódy.
JSON-2 vyžaduje pomenované argumenty v tele JSON požiadavky namiesto pozičných RPC argumentov. (Odoo master Docs: Reference External API) Existujúce wrappery, middleware a generované klienty môžu predpokladať, že poradie argumentov určuje význam. Tieto komponenty si vyžadujú individuálnu kontrolu. Presmerovanie starej požiadavky na nový koncový bod nebude fungovať, ak klient naďalej zostavuje pozičné parametre.
Pre každú migrovanú operáciu by tímy mali zdokumentovať cieľový model, metódu a pomenované argumenty požadované JSON-2. (Odoo master Docs: Reference External API) Požiadavky by sa potom mali otestovať v príslušnom prostredí Odoo 20, najmä keď zdieľaná integračná knižnica vytvára volania pre viacero aplikácií. Statické porovnanie payloadov nemôže potvrdiť, ako server alebo klient spracuje celú požiadavku.
Meniť sa musí aj autentifikácia
JSON-2 používa autentifikáciu pomocou bearer API kľúča. (Odoo master Docs: Reference External API) Migračné práce by mali pokrývať vytvorenie kľúčov, ich bezpečné uloženie, spracovanie autorizačnej hlavičky a výmenu kľúčov. Proxy, gatewaye a klientské knižnice treba skontrolovať, aby sa overilo, že pri preposielaní požiadaviek hlavičku zachovávajú. Preveriť treba aj protokolovanie, monitorovanie a spracovanie chýb, aby sa poverenia neodhalili.
Dokumentácia ustanovuje metódu autentifikácie, no každá organizácia musí určiť, ako API kľúče zapadajú do jej kontrol poverení. (Odoo master Docs: Reference External API) To zahŕňa pridelenie zodpovednosti za kľúče, kontrolu, kde sa môžu používať, a určenie, ako sa budú dotknuté integrácie aktualizovať pri výmene kľúča.
Binárne polia majú samostatnú zmenu kompatibility
Záznam zmien Odoo ORM uvádza ďalšiu zmenu RPC v Odoo 20: reprezentácia binárnych polí pridáva `BinaryValue.filename`. (Odoo master Docs: Orm Changelog) Toto je samostatné od odstránenia databázovej služby, pretože mení vrátené údaje, nie dostupnosť služby. Aplikácie, ktoré čítajú, transformujú alebo overujú odpovede obsahujúce binárne polia, by mali byť zahrnuté do testovania kompatibility.
Záznam zmien potvrdzuje, že sa pridáva člen `filename`, no jeho praktický vplyv závisí od klienta. (Odoo master Docs: Orm Changelog) Testy by mali skontrolovať, či prísne schémy, serializátory, porovnania odpovedí a následné transformácie prijímajú tento dodatočný člen. Klienti, ktorí ignorujú neznáme polia, nemusia vyžadovať úpravy, no toto správanie treba overiť, nie predpokladať.
Ako zúžiť rozsah auditu integrácie
Začnite identifikáciou pripojení, ktoré používajú `/xmlrpc`, `/xmlrpc/2` alebo `/jsonrpc`, ktoré Odoo označuje ako zastarané koncové body. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) Inventúra by mala pokrývať interne vyvíjané aplikácie, middleware, plánované procesy a konektory tretích strán, kde je k dispozícii konfigurácia alebo zdrojový kód. Ku každému pripojeniu priraďte vlastníka, aby bolo možné overiť jeho účel a stav.
Potom klasifikujte každé pripojenie podľa staršej služby. Použitie databázovej služby vyžaduje nápravu pre Odoo 20, zatiaľ čo používanie všeobecnej a objektovej služby je naďalej zdokumentované ako dostupné až do Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) To podporuje postupný plán: najprv riešte nekompatibilitu v Odoo 20, potom nastavte dátumy migrácie pre zostávajúce zastarané volania.
Pri integráciách prechádzajúcich na JSON-2 zaznamenajte trasu `/json/2/<model>/<method>`, pomenované argumenty požiadavky a autentifikáciu pomocou bearer API kľúča, ktorú vyžaduje náhradné rozhranie. (Odoo master Docs: Reference External API) Testovacie prípady by mali pokrývať úspešné požiadavky, zamietnutú autentifikáciu, neplatné pomenované argumenty a spracovanie vrátených údajov aplikáciou. Prípady s binárnymi poľami pridajte všade tam, kde sa tieto polia vyskytujú.
Potvrďte konečné správanie Odoo 20
Podrobnosti o odstránení sú prevzaté z hlavnej vývojárskej dokumentácie Odoo, zatiaľ čo oznámený termín vydania pochádza zo stránky podujatia, ktorá uvádza, že Odoo 20 bude vydané počas amerického podujatia v septembri 2026. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API; Oxp26 Americas Introduction) Pred nasadením by tímy mali znovu skontrolovať dokumentáciu pre vydanú verziu Odoo 20 a presnú edíciu a zostavu, ktorú plánujú použiť.
Použitie zastaraného RPC koncového bodu samo osebe nepreukazuje, že integrácia v Odoo 20 prestane fungovať, pretože všeobecná a objektová služba sú naďalej zdokumentované až do Odoo 22. Naopak, úspešná prevádzka na staršej verzii neustanovuje kompatibilitu pre volanie databázovej služby po jej odstránení. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)
Kontrolný zoznam rozhodovania o aktualizácii
Pred schválením aktualizácie na Odoo 20 by mali rozhodovatelia vyžiadať register integrácií, ktorý zobrazuje každý zastaraný koncový bod, volanú službu, jej vlastníka a plánovanú nápravu. Závislosti na databázovej službe by mali mať otestovanú náhradu. Integrácie zostávajúce na všeobecných alebo objektových službách by mali mať samostatný dátum migrácie odrážajúci ich zdokumentované odstránenie v Odoo 22. (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)
Kontrola by mala potvrdiť, že implementácie JSON-2 umiestňujú model a metódu do URL, používajú pomenované argumenty JSON a autentifikujú sa pomocou bearer API kľúča. Ak sú prítomné binárne polia, testovanie by malo zohľadniť doplnenie `BinaryValue.filename`. (Odoo master Docs: Reference External API; Odoo master Docs: Orm Changelog) Tieto kontroly odlišujú okamžité odstránenie databázovej služby v Odoo 20 od neskoršieho ukončenia zostávajúcich starších služieb.
