OpenAPI から oRPC へ — 受託 API プロジェクトの型共有を 2026 年式に更新する | GH Media
URLがコピーされました

OpenAPI から oRPC へ — 受託 API プロジェクトの型共有を 2026 年式に更新する

URLがコピーされました
OpenAPI から oRPC へ — 受託 API プロジェクトの型共有を 2026 年式に更新する

2026 年 5 月、Zenn Trending で OpenAPIという間接的な型共有をやめてoRPCを導入した話 が話題になり、TypeScript モノレポでの型共有を OpenAPI ベース(生成型)から oRPC ベース(直接型)に切り替える動きが本格化しています。

受託案件で頻発する 「OpenAPI スキーマと実装がズレてフロントが壊れる」 問題は、根本的には 「型を生成で間接共有している」 構造に起因します。本記事では受託 API プロジェクトを 2026 年式に更新する方法を整理します。

なぜ OpenAPI 型共有が「間接的」と呼ばれるか

OpenAPI を中心に据えた型共有は次のフローです。

[OpenAPI YAML/JSON]

   ├─ generate ─→ [TS 型定義(クライアント)]

   └─ generate ─→ [TS 型定義(サーバー)]

                    └─ 実装が変わると YAML 更新が必要

このフローの問題は次の 4 点です。

問題受託案件での影響
二重管理YAML と実装の同期がズレる
生成タイミングCI で生成→コミット忘れ→壊れる
型表現力の劣化TS の Discriminated Union が表現しきれない
ランタイム検証分離スキーマと Zod 検証が二重に書かれる

これは 既存 SaaS API を MCP サーバー化する設計パターン で扱った “API 表面” の議論を、内部の FE / BE 間に展開した話です。

oRPC が変える「直接型共有」

oRPC は TypeScript の型をそのまま FE / BE で共有するライブラリで、tRPC の系譜にあります。OpenAPI と決定的に違うのは 「コード生成しない」 ことです。

[サーバー側 oRPC ルーター定義(TS)]

   ├─ export type AppRouter = ...


[クライアント側 import type { AppRouter }]

   └─ 完全な型補完が効く

4 つの構造的優位

項目OpenAPI 生成型oRPC 直接型
生成ステップあり(CI 必須)なし
型表現力YAML の制約内TS フル機能
ランタイム検証別途 Zod 等スキーマと型が一体
API ドキュメントYAML から自動OpenAPI 出力可能(oRPC は両対応)
外部公開標準で対応OpenAPI 互換層あり

oRPC は OpenAPI 出力も標準対応しているため、「外部公開には OpenAPI、社内 FE/BE 間は直接型」 というハイブリッドが可能です。これが tRPC との大きな違いで、外部 SaaS 受託案件でも使える理由です。

受託案件での適用判断 — 3 つの軸

軸 1: クライアントの種類

クライアント推奨
自社開発 TS フロント(Next / Astro)oRPC 推奨(型補完が最強)
外部開発者向け公開 APIOpenAPI 維持 + oRPC で内部実装
モバイル(Swift / Kotlin)OpenAPI 必須(言語横断)
AI エージェント向けMCP サーバー化を別途検討

軸 2: モノレポ構成

oRPC は モノレポ前提で効果が最大化されます。FE / BE が別リポだと型共有の旨味が半減します。これは マルチリポ中央地図 AI 受託 で扱った “リポジトリ戦略” と整合する判断です。

軸 3: チーム構成

FE / BE が 同じチーム / 同じエンジニアで開発する受託案件では、oRPC の生産性向上が直接効きます。逆に、FE と BE が完全別組織だと OpenAPI の方が境界が明確で運用しやすい場合もあります。

移行設計のロードマップ

[Phase 0: 評価] 1 週間
  ├ 既存 API の棚卸し(エンドポイント数・複雑度)
  ├ クライアント種別の整理
  └ Go / No-Go 判断

[Phase 1: 基盤導入] 2 週間
  ├ oRPC ルーター骨組み
  ├ CI / build 統合
  └ 既存 OpenAPI との並行運用準備

[Phase 2: 段階移行] 6 〜 12 週間
  ├ エンドポイントを機能単位で oRPC 化
  ├ FE 側で oRPC クライアント呼び出しに置換
  └ E2E テスト維持

[Phase 3: OpenAPI 出力] 2 週間
  ├ 外部公開エンドポイントの OpenAPI 出力
  ├ ドキュメントサイト整備
  └ クライアント SDK 自動生成

[Phase 4: 旧コード除去] 2 〜 4 週間
  ├ 旧 OpenAPI 生成コード削除
  ├ 関連ライブラリの整理
  └ 移行完了報告

Phase 2 を機能単位で進めることで、「移行中も止まらない」 受託案件の典型パターンを保てます。

受託契約に書く oRPC 採用条項

条項内容顧客が確認すべきこと
外部公開 API の互換性OpenAPI 出力の維持と互換保証既存外部クライアントへの影響
エンドポイント命名規則RPC スタイル vs REST スタイル顧客の運用慣習との適合
エラー設計業務エラーと HTTP ステータスの対応既存監視との整合
ランタイム検証Zod ベースの入力検証範囲セキュリティ要件
ロールバック条件移行が困難と判明した場合の戻しリスク管理

特に 「外部公開 API の互換性」は、「内部で oRPC を採用しても外部からは OpenAPI に見える」 ことを契約で明文化することで、外部開発者を巻き込まずに移行できるようにします。

価格モデル — oRPC 移行受託パッケージ

プラン金額対象内容
Eval50 万円〜1 週間評価 + 移行計画
Lite250 万円〜エンドポイント 20 個未満単一サービスの移行
Standard700 万円〜エンドポイント 100 個未満並行運用 + 全面移行
Enterprise1,500 万円〜大規模モノレポ複数プロダクト横断

ハマりやすい 4 つの落とし穴

落とし穴 1: 「型補完が効いて速い」を過大評価

oRPC の最大価値は 「型ズレを起こさない」 ことで、「実装速度 3 倍」 とまでは言えません。「障害を減らす」 という観点で顧客に説明します。

落とし穴 2: REST 慣れチームでの混乱

RPC スタイルに慣れていないチームは 「メソッド名で機能を表現」 する文化に違和感を持ちます。最初のレビューで設計レビュー会を入れます。

落とし穴 3: 外部開発者への説明

外部公開エンドポイントが OpenAPI で出ても、「中身は oRPC」 と聞くと不安に思う顧客はいます。OpenAPI 出力のサンプルを初期に共有します。

落とし穴 4: エラーレスポンスの設計漏れ

oRPC は TS エラーで表現できるため、HTTP ステータスを軽視しがちです。監視・ロギングと整合する設計を契約初期に決めます。

まとめ — 「生成」から「共有」へ

oRPC が示すのは、「型を生成で間接共有する」時代の終わりです。TypeScript モノレポ + 自社 FE / BE という受託案件の典型構成では、oRPC への移行で「OpenAPI 生成のズレ」が原因の障害がゼロに近づきます

弊社では Eval / Lite / Standard / Enterprise の 4 段階で oRPC 移行受託パッケージを提供しています。「OpenAPI 同期ズレで毎月のように障害が出る」「TypeScript モノレポを 2026 年式に更新したい」というご相談は お問い合わせフォーム からお気軽にどうぞ。

Sources

URLがコピーされました

グリームハブ株式会社は、変化の激しい時代において、アイデアを形にし、人がもっと自由に、もっと創造的に生きられる世界を目指しています。

記事を書いた人

鈴木 翔

鈴木 翔

技術の可能性に魅了され、学生時代からプログラミングとデジタルアートの分野に深い関心を持つ

関連記事