RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/開発ツール
開発ツール/2026-07-18上級

別サーバーを立てずに済ませる — Expo Router の API Routes でバックエンドをアプリに同居させる

RevenueCat の Webhook を受けるためだけに、また Worker を1つ増やす。その繰り返しに疲れたとき、Expo Router の API Routes に出会いました。アプリと同じリポジトリにバックエンドを同居させる実装を、署名検証とデプロイ先の選び方まで含めて共有します。

Expo Router6API Routesバックエンド11RevenueCat29Webhook3

プレミアム記事

先日、7本目の小さなアプリを出す準備をしていて、手が止まりました。RevenueCat の Webhook を受け取るためだけに、また Cloudflare Worker を1つ新規に作り、環境変数を設定し、デプロイ URL を控え、ダッシュボードに貼りに行く。この一連の作業を、これまで何度繰り返してきただろうと。

Worker 自体はよくできた道具です。ただ、アプリが増えるたびに「アプリのリポジトリ」と「そのアプリ専用の小さなサーバーのリポジトリ」が2つずつ増えていく構造に、静かな摩擦を感じていました。バージョンがずれる。どちらのシークレットをどこに置いたか忘れる。片方だけデプロイして不整合が起きる。

そんなときに Expo Router の API Routes を本気で使ってみて、手応えが変わりました。バックエンドを、アプリと同じリポジトリの app/api/ に同居させる。その実装を、RevenueCat の Webhook 受信を題材にして、署名検証とデプロイ先の選定まで含めて具体的に共有します。

別 Worker を立てるたびに増えていた、見えない管理コスト

まず、私がなぜ同居を選ぶようになったかを正直に書きます。

個人開発で iOS/Android のアプリを長く運用していると、サーバー側に置きたい処理は意外と小さなものばかりです。AdMob のリワード SSV を検証する。RevenueCat や App Store の Webhook を受けて自前 DB に反映する。API キーをクライアントに晒さないためのプロキシを1本置く。どれも数十行で済みます。

その数十行のために、独立したリポジトリとデプロイパイプラインを毎回1セット用意する。これがアプリ本数ぶん積み上がっていくと、コードの量ではなく「管理対象の個数」が効いてきます。私の場合、6本のアプリに対して小さな Worker が散らばり、どれがどのアプリのものか、README を見ないと思い出せない状態になっていました。

API Routes は、この「個数」を減らすための選択肢です。アプリ1本につきリポジトリ1つ。バックエンドはその中に住みます。

API Routes は Expo アプリの中に住むバックエンド

Expo Router の API Routes は、app/ ディレクトリの中に +api.ts という接尾辞のファイルを置くと、それがサーバー側で実行されるエンドポイントになる仕組みです。画面用のルーティングと同じファイルベースの規約を、そのままサーバーにも延長したもの、と捉えると分かりやすいです。

たとえば app/api/hello+api.ts を作ると、/api/hello という URL で叩けるエンドポイントになります。中身は Web 標準の Request を受けて Response を返す関数です。Next.js の Route Handlers を触ったことがあれば、ほぼ同じ感覚で書けます。

重要な前提が1つあります。API Routes はサーバー実行環境が必要なので、app.jsonweb.output"server" にしておく必要があります。この設定を忘れると、ビルドは通るのにエンドポイントが 404 を返す、という地味にハマりやすい状態になります。

// app.json
{
  "expo": {
    "web": {
      "output": "server"
    }
  }
}

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
app/api/webhook+api.ts だけで RevenueCat の Webhook を受ける最小実装(コピーして動く TypeScript 付き)
署名検証とシークレットの置き場所、EAS Hosting と Vercel のデプロイ差を1つの表で比較
別 Worker を立てる場合と同居させる場合の判断軸を、私が6本のアプリで実際に分けた基準で提示
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-04-25
RorkアプリにZapierを繋ぐ — バックエンドなしでユーザー通知・データ連携を自動化する方法
Rorkで作ったアプリにZapierを連携させ、ユーザー登録メール・フォームデータ保存・購入通知などをバックエンドなしで自動化する方法を実例コード付きで解説します。
開発ツール2026-04-15
Rork × RevenueCat + Stripe Web 統合ガイド:iOS・Android・Web のサブスクリプションを1つのバックエンドで管理する
Rorkアプリで iOS StoreKit・Android Google Play Billing・Stripe Web の3つの課金チャネルを RevenueCat で一元管理する実装ガイド。クロスプラットフォーム対応の落とし穴と本番運用まで解説します。
開発ツール2026-03-31
Rork × Make(旧Integromat)連携ガイド:Webhookでノーコードバックエンドを構築する方法
Rorkアプリに Make(旧Integromat)を連携させる方法を解説。Webhookを使ったノーコードバックエンドの構築から、フォーム送信→Notion保存→メール通知まで実践的なシナリオを紹介します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →