Odooの公式マスタードキュメントでは、従来のRPCデータベースサービスがOdoo 20で削除されるとされています。XML-RPCおよびJSON-RPCの広範なAPIはバージョン19.0から非推奨ですが、Odoo 20で従来サービスがすべて削除されるわけではありません。OdooはcommonサービスとobjectサービスがOdoo 22まで利用可能であると記載しています。 (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) そのため、連携チームは各外部接続で使用されているサービスを特定する必要があり、従来RPCのサポートを1つの機能、1つの削除日として扱うべきではありません。
OdooのAmericasイベントページでは、Odoo 20は2026年9月2日と3日のサンフランシスコイベントでリリースされると案内されていました。 (Oxp26 Americas Introduction ) アップグレード計画では、文書化されたデータベースサービスの削除を今の時点で考慮できますが、本番環境での判断は最終版のOdoo 20リリース документаションで確認する必要があります。
削除の対象は特定のサービスです
Odooは`/xmlrpc`、`/xmlrpc/2`、`/jsonrpc`を、バージョン19.0から非推奨の従来エンドポイントとして示しています。これらのAPIのうち、データベースサービスはOdoo 20で削除され、commonサービスとobjectサービスはOdoo 22まで残る予定です。 (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) 保持されるサービスを使う連携は、Odoo 20へのアップグレード後も動作し続ける可能性がありますが、エンドポイントだけでは互換性は判断できません。
システムは従来のRPCインターフェースを通じて異なるサービスを利用できます。そのため、連携の見直しではエンドポイントと呼び出しているサービスの両方を記録する必要があります。アプリケーションをXML-RPCまたはJSON-RPC連携とだけ表現しても、Odoo 20で削除された操作に依存しているかどうかは分かりません。 (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)
commonサービスとobjectサービスが引き続き利用できるのは一時的なものです。Odooは両方をOdoo 22で削除する予定です。 (Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) チームは、データベースサービス呼び出しに関する緊急対応と、保持されるサービスの移行を分けて進めることができますが、どちらにも計画が必要です。
JSON-2はリクエスト仕様を変更します
OdooはJSON-2を代替APIとして文書化しています。エンドポイント形式は`/json/2/<model>/<method>`で、modelとmethodがURLに含まれます。 (Odoo master Docs: Reference External API) したがって移行は、既存のRPCクライアントのベースパスを置き換えるだけではありません。各操作を適切なmodelとmethodのルートに対応付ける必要があります。
JSON-2では、位置指定のRPC引数ではなく、JSONリクエスト本文内で名前付き引数を使います。 (Odoo master Docs: Reference External API) 既存のラッパー、ミドルウェア、生成済みクライアントは、引数の順序が意味を決めると想定している場合があります。これらのコンポーネントは個別に見直す必要があります。クライアントが引き続き位置指定パラメータを組み立てる場合、従来リクエストを新しいエンドポイントへ向けても動作しません。
移行する各操作について、チームはJSON-2で必要となる対象model、method、名前付き引数を文書化するべきです。 (Odoo master Docs: Reference External API) その後、関連するOdoo 20環境でリクエストをテストしてください。特に、共有の連携ライブラリが複数のアプリケーション向けに呼び出しを構築する場合は重要です。静的なペイロード比較だけでは、サーバーやクライアントが完全なリクエストをどのように処理するかは確認できません。
認証も変更が必要です
JSON-2はベアラーAPIキー認証を使用します。(Odoo master Docs: Reference External API) 移行作業では、キーの作成、安全な保管、認可ヘッダーの処理、キーの置き換えを対象にする必要があります。プロキシ、ゲートウェイ、クライアントライブラリは、リクエストを転送する際にヘッダーを保持するか確認してください。認証情報が露出しないよう、ログ記録、監視、エラー処理も見直す必要があります。
このドキュメントは認証方式を定義していますが、各組織は API キーを自社の認証情報管理にどう組み込むかを判断する必要があります。(Odoo master Docs: Reference External API) これには、キーの責任者の割り当て、使用可能な場所の制御、キーが置き換えられた際に影響を受ける連携をどのように更新するかの定義が含まれます。
バイナリフィールドには別の互換性変更があります
Odoo の ORM 変更履歴には、Odoo 20 の別の RPC 変更が記録されています。バイナリフィールドの表現に `BinaryValue.filename` が追加されます。(Odoo master Docs: Orm Changelog) これは、サービスの可用性ではなく返却データを変更するため、データベースサービスの削除とは別です。バイナリフィールドを含むレスポンスを読み取り、変換し、または検証するアプリケーションは、互換性テストに含める必要があります。
変更履歴では `filename` メンバーが追加されることが確認されていますが、実際の影響はクライアントによって異なります。(Odoo master Docs: Orm Changelog) テストでは、厳格なスキーマ、シリアライザ、レスポンス比較、下流の変換が追加メンバーを受け入れるか確認する必要があります。未知のフィールドを無視するクライアントでは調整が不要な場合がありますが、その動作は推測ではなく確認すべきです。
連携監査の対象範囲を決める方法
まず、`/xmlrpc`、`/xmlrpc/2`、または `/jsonrpc` を使用する接続を特定します。Odoo ではこれらは非推奨のエンドポイントとされています。(Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) インベントリには、構成またはソースコードが利用できる社内開発アプリケーション、ミドルウェア、定期実行プロセス、サードパーティコネクタを含める必要があります。各接続に責任者を割り当て、その目的と状態を確認できるようにします。
次に、各接続を従来のサービスごとに分類します。データベースサービスの利用は Odoo 20 で修正が必要ですが、共通サービスとオブジェクトサービスは Odoo 22 まで利用可能であることがドキュメントに記載されています。(Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API) これは段階的な計画を支えます。まず Odoo 20 の非互換性に対処し、その後、残りの非推奨呼び出しの移行日を設定します。
JSON-2 に移行する連携については、置き換えインターフェースで必要となる `/json/2/<model>/<method>` ルート、名前付きリクエスト引数、bearer API キー認証を記録してください。(Odoo master Docs: Reference External API) テストケースでは、成功するリクエスト、認証拒否、無効な名前付き引数、返却データのアプリケーション側の処理を網羅する必要があります。バイナリフィールドがある場合は、その箇所もすべて追加してください。
Odoo 20 の最終的な動作を確認する
削除の詳細は Odoo の master 開発者向けドキュメントに基づいており、発表されたリリース時期は、Odoo 20 が 2026 年 9 月の Americas イベント中にリリースされると記載したイベントページに由来します。(Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API; Oxp26 Americas Introduction) 導入前に、チームはリリース済みの Odoo 20 バージョンのドキュメントと、使用予定の正確なエディションおよびビルドを再確認する必要があります。
非推奨の RPC エンドポイントを使っていることだけでは、Odoo 20 でその連携が停止すると断定できません。共通サービスとオブジェクトサービスは Odoo 22 までドキュメント上で利用可能だからです。逆に、以前のバージョンで正常に動作したとしても、データベースサービス呼び出しが削除された後の互換性を示すものではありません。(Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)
アップグレード判断チェックリスト
Odoo 20 へのアップグレードを承認する前に、意思決定者は、各非推奨エンドポイント、呼び出されるサービス、その責任者、計画された修正を示す連携台帳を要求すべきです。データベースサービスへの依存関係には、検証済みの代替手段が必要です。共通サービスまたはオブジェクトサービスのまま残る連携には、Odoo 22 での削除予定を反映した別の移行日を設定する必要があります。(Odoo master Docs: Reference External API; Odoo master Docs: Reference External Rpc API)
レビューでは、JSON-2 の実装がモデルとメソッドを URL に配置し、名前付きの JSON 引数を使用し、Bearer API キーで認証していることを確認する必要があります。バイナリフィールドがある場合は、`BinaryValue.filename` の追加を考慮してテストする必要があります。 (Odoo master Docs: Reference External API; Odoo master Docs: Orm Changelog) これらの確認事項は、Odoo 20 でのデータベースサービスの即時削除と、その後に残るレガシーサービスの廃止を区別します。
