パートナーポータル
AI エージェントで構築
APIパートナーポータルバックエンド

APIパートナーポータルバックエンドテンプレート
パートナーアクセス、APIトラフィック、ドキュメント

プロダクション対応のAPIパートナーポータルバックエンドがBack4appにあり、ユーザー、パートナー組織、APIキー、UsageLog、開発者ドキュメントを含みます。ER図、データ辞書、JSONスキーマ、APIプレイグラウンド、迅速なセットアップのためのAIエージェントプロンプトが含まれています。

ポータルの要点

このテンプレートは、APIキー管理、UsageLogレビュー、およびDeveloperDoc公開を備えたAPIパートナーポータルのバックエンドを提供し、内部チームと外部パートナーが1つの作業面を共有できるようにします。

  1. APIキーライフサイクル管理パートナー所有権、tokenPrefix、スコープ、isActive、およびlastUsedAtフィールドを持つAPIキーのレコードをモデル化します。
  2. UsageLogの可視化APIキーごとにUsageLogエントリを追跡し、エンドポイント呼び出し、statusCodeの急増、およびrequestCountの合計をレビューできます。
  3. DeveloperDocの更新タイトル、スラッグ、コンテンツ、apiVersion、およびisPublishedを使用して、DeveloperDocのレコードを公開APIガイダンスと整合させておきます。
  4. パートナーアクセス境界ACLとCLPを使用して、PartnerOrganizationのワークスペース、APIKeyの行、およびUsageLogのレコードを正しいアカウントにスコープします。
  5. クロスプラットフォームポータルバックエンドユーザー、PartnerOrganization、APIKey、UsageLog、およびDeveloperDocのための1つのRESTおよびGraphQL APIを通じて、Webおよびモバイルクライアントにサービスを提供します。

APIパートナーポータルテンプレートとは?

APIパートナーポータルでは、パートナー、スタッフ、およびクライアントは、役割に必要な情報だけを正確に見るべきです—それ以上もそれ以下もありません。信頼性は機能であり、脚注ではありません。このテンプレートは、Back4app上の役割ベースのアクセスを持つPartnerOrganization、APIKey、UsageLog、およびDeveloperDocをモデル化しているため、すべてのAPIパートナーポータルのチームメンバーは自分の所有するパイプラインの一部を見ます。スキーマは、User(ユーザー名、メール、パスワード、役割)、PartnerOrganization(名前、ステータス、主連絡先、サポートティア)、APIKey(キー名、トークンプレフィックス、スコープ、アクティブ、最終使用時間、パートナー、作成者)、UsageLog(パートナー、apiKey、エンドポイント、メソッド、ステータスコード、リクエスト数、発生時間)、およびDeveloperDoc(タイトル、スラッグ、コンテンツ、apiバージョン、公開状況、所有者、パートナー)を含み、認証、可視性ルール、およびパートナーのワークフローサポートが組み込まれています。お好みのフロントエンドを接続して、より早く出荷しましょう。

最適:

APIパートナーポータルAPIキーライフサイクルダッシュボードUsageLog分析コンソールDeveloperDoc公開ハブB2B統合チームがBaaSを選んで共有APIアクセスを利用する

APIパートナーポータルテンプレートの概要

ほとんどのAPIパートナーポータルのミスは単調です:タイムスタンプの見落とし、重複した行、昨日は正しかったが今日は間違っているカウント。

PartnerOrganization、APIキー、UsageLogの背後にあるスキーマはハブや技術ページ間で共有されており、フレームワークを切り替えることはレコードの再設計を意味するべきではありません。

ポータルのコア機能

このハブのすべてのテクノロジーカードは、User、PartnerOrganization、APIKey、UsageLog、および DeveloperDoc を使用する同じパートナーポータルバックエンドスキーマを利用しています。

パートナーアカウント管理

PartnerOrganizationは、名前、ステータス、主連絡先、およびサポートティアを1つのレコードに保持します。

APIキーのライフサイクル追跡

APIキーは、keyName、tokenPrefix、scopes、isActive、lastUsedAt、partner、およびcreatedByを保存します。

UsageLog レビュー

UsageLog はパートナー、apiKey、エンドポイント、メソッド、statusCode、requestCount、および occurredAt をキャプチャします。

DeveloperDoc の公開

DeveloperDoc はタイトル、スラッグ、コンテンツ、apiVersion、isPublished、オーナー、およびパートナーを保存します。

なぜBack4appでAPIパートナーポータルバックエンドを構築するのか?

Back4appは、チームがバックエンドの配管作業ではなくポータル体験に集中できるように、User、PartnerOrganization、APIKey、UsageLog、およびDeveloperDocのプリミティブを提供します。

  • トークンおよびパートナー管理: APIKeyはPartnerOrganizationに直接結びついており、発行、ローテーション、無効化の監査が容易になります。
  • 実際の質問に答える使用状況の可視性: UsageLogはエンドポイント、メソッド、ステータスコード、リクエストカウントを記録し、サポートが推測なしで統合の問題を追跡できるようにします。
  • 公開ボトルネックなしのドキュメント更新: DeveloperDocは、エンドポイントノート、バージョン管理されたガイダンス、パートナー向けの変更履歴のための構造化された場所を提供します。

最初にAPIKey、UsageLog、DeveloperDocを中心にポータルを構築し、パートナーのオンボーディングに明確なバックエンド契約を持たせます。

ポータルの利点

APIKey 作業、UsageLog レビュー、および DeveloperDoc の公開を一つの場所にまとめるパートナーポータルバックエンド。

迅速なパートナーオンボーディング

トークンテーブルやアクセスルールをゼロから組み立てるのではなく、PartnerOrganizationクラスとAPIKeyクラスから始めます。

サポートチームが使えるコンテキストを取得

UsageLogの行には、パートナーが失敗したリクエストを報告したときに、エンドポイント、メソッド、ステータスコード、リクエスト数、および発生時刻が表示されます。

より安全なキー取り扱い

生のシークレットを公開するのではなく、tokenPrefixとスコープを保存し、キーの状態が変わるときにisActiveを切り替えます。

バージョン管理されたドキュメントが整理される

DeveloperDocはリリースノート、apiVersionターゲッティング、および公開状態に安定した構造を提供します。

すべてのクライアントのための単一のAPIインターフェース

ウェブポータル、モバイル管理ツール、および内部ダッシュボードは、同じUser、PartnerOrganization、APIKey、UsageLog、およびDeveloperDocデータを読み取ることができます。

AIブートストラップワークフロー

1つの構造化されたプロンプトでスキーマ、アクセスルール、およびポータルの足場を迅速に生成します。

APIパートナーポータルを立ち上げる準備はできましたか?

Back4app AIエージェントにAPIパートナーポータルのバックエンドを足場を組ませ、1つのプロンプトからAPIKey、UsageLog、およびDeveloperDocフローを生成させましょう。

無料で始められます — 月50のAIエージェントプロンプト、クレジットカードは不要

ポータルテクノロジースタック

このAPIパートナーポータルバックエンドテンプレートに含まれるすべて。

フロントエンド
13以上の技術
バックエンド
Back4app
データベース
MongoDB
認証
組み込み認証 + セッション
API
REST と GraphQL
リアルタイム
Live Queries

パートナー関係マップ

API パートナーポータルバックエンドスキーマのためのエンティティ関係モデル。

図のソースを見る
Mermaid
erDiagram
    User ||--o{ PartnerOrganization : "primaryContact"
    User ||--o{ APIKey : "createdBy"
    User ||--o{ DeveloperDoc : "owner"
    PartnerOrganization ||--o{ APIKey : "partner"
    PartnerOrganization ||--o{ UsageLog : "partner"
    PartnerOrganization ||--o{ DeveloperDoc : "partner"
    APIKey ||--o{ UsageLog : "apiKey"

    User {
        String objectId PK
        String username
        String email
        String password
        String role
        Date createdAt
        Date updatedAt
    }

    PartnerOrganization {
        String objectId PK
        String name
        String status
        String primaryContactId FK
        String supportTier
        Date createdAt
        Date updatedAt
    }

    APIKey {
        String objectId PK
        String keyName
        String tokenPrefix
        Array scopes
        Boolean isActive
        Date lastUsedAt
        String partnerId FK
        String createdById FK
        Date createdAt
        Date updatedAt
    }

    UsageLog {
        String objectId PK
        String partnerId FK
        String apiKeyId FK
        String endpoint
        String method
        Number statusCode
        Number requestCount
        Date occurredAt
        Date createdAt
        Date updatedAt
    }

    DeveloperDoc {
        String objectId PK
        String title
        String slug
        String content
        String apiVersion
        Boolean isPublished
        String ownerId FK
        String partnerId FK
        Date createdAt
        Date updatedAt
    }

ポータル統合フロー

サインイン、APIキーの検索、UsageLogの確認、DeveloperDocの更新のための典型的な実行フロー。

図のソースを見る
Mermaid
sequenceDiagram
  participant User
  participant Portal as API Partner Portal App
  participant Back4app as Back4app Cloud

  User->>Portal: Sign in with portal credentials
  Portal->>Back4app: POST /login
  Back4app-->>Portal: Session token

  User->>Portal: Open APIKeys for a partner workspace
  Portal->>Back4app: GET /classes/APIKey?include=partner,createdBy
  Back4app-->>Portal: Token list with scopes and lastUsedAt

  User->>Portal: Create a new APIKey
  Portal->>Back4app: POST /classes/APIKey
  Back4app-->>Portal: APIKey objectId and tokenPrefix

  User->>Portal: Review UsageLog entries for the token
  Portal->>Back4app: GET /classes/UsageLog?include=partner,apiKey&order=-occurredAt
  Back4app-->>Portal: Usage history and statusCode totals

  opt Publish developer notes
    User->>Portal: Update a DeveloperDoc page
    Portal->>Back4app: PUT /classes/DeveloperDoc/:objectId
    Back4app-->>Portal: Updated markdown and publish state
  end

フィールド辞書

APIパートナーポータルスキーマ内のすべてのクラスの完全なフィールドレベル参照。

フィールドタイプ説明必須
objectIdStringAuto-generated unique identifier自動
usernameStringLogin name for a portal user
emailStringPrimary email address for portal access
passwordStringHashed password (write-only)
roleStringPortal role such as admin, partnerAdmin, or developer
createdAtDateAuto-generated creation timestamp自動
updatedAtDateAuto-generated last-update timestamp自動

7 フィールドを User

アクセス制御

ACLおよびCLP戦略がパートナー、APIKeyレコード、UsageLogエントリ、およびDeveloperDocページをどのように保護するか。

パートナー範囲のアカウント

各PartnerOrganizationレコードはポータル管理者または割り当てられた主担当ユーザーのみが編集可能であるべきです。

キーの秘密とローテーション

APIKey.tokenPrefixとスコープを公開ビューに保存し、ブラウザから生のキー材料を除外してください。

使用ログの読み取り境界

UsageLogの読み取りをAPIKeyを所有するパートナーとトラブルシューティングアクセスが必要なサポートロールに制限します。

JSONスキーマ

コピーしてBack4appに入れるか、実装の参考として使用できる生のJSONスキーマ定義。

JSON
{
  "classes": [
    {
      "className": "User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "role": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "PartnerOrganization",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "name": {
          "type": "String",
          "required": true
        },
        "status": {
          "type": "String",
          "required": true
        },
        "primaryContact": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "supportTier": {
          "type": "String",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "APIKey",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "keyName": {
          "type": "String",
          "required": true
        },
        "tokenPrefix": {
          "type": "String",
          "required": true
        },
        "scopes": {
          "type": "Array",
          "required": true
        },
        "isActive": {
          "type": "Boolean",
          "required": true
        },
        "lastUsedAt": {
          "type": "Date",
          "required": false
        },
        "partner": {
          "type": "Pointer",
          "required": true,
          "targetClass": "PartnerOrganization"
        },
        "createdBy": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "UsageLog",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "partner": {
          "type": "Pointer",
          "required": true,
          "targetClass": "PartnerOrganization"
        },
        "apiKey": {
          "type": "Pointer",
          "required": true,
          "targetClass": "APIKey"
        },
        "endpoint": {
          "type": "String",
          "required": true
        },
        "method": {
          "type": "String",
          "required": true
        },
        "statusCode": {
          "type": "Number",
          "required": true
        },
        "requestCount": {
          "type": "Number",
          "required": true
        },
        "occurredAt": {
          "type": "Date",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "DeveloperDoc",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "slug": {
          "type": "String",
          "required": true
        },
        "content": {
          "type": "String",
          "required": true
        },
        "apiVersion": {
          "type": "String",
          "required": true
        },
        "isPublished": {
          "type": "Boolean",
          "required": true
        },
        "owner": {
          "type": "Pointer",
          "required": true,
          "targetClass": "User"
        },
        "partner": {
          "type": "Pointer",
          "required": false,
          "targetClass": "PartnerOrganization"
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

AIエージェントで構築

Back4app AIエージェントを使用して、このテンプレートからフロントエンド、バックエンド、認証、APIKey、UsageLog、DeveloperDocフローを含む実際のAPIパートナーポータルアプリを生成します。

Back4app AIエージェント
ビルド準備完了
Back4app上でこの正確なスキーマと動作を持つAPIパートナーポータルアプリのバックエンドを作成します。

スキーマ:
1. ユーザー: ユーザー名 (文字列, 必須), メール (文字列, 必須), パスワード (文字列, 必須), ロール (文字列, 必須); objectId, createdAt, updatedAt (システム).
2. パートナー組織: 名前 (文字列, 必須), ステータス (文字列, 必須), プライマリコンタクト (ユーザーへのポインタ, 必須), サポートティア (文字列, オプション); objectId, createdAt, updatedAt (システム).
3. APIキー: キー名 (文字列, 必須), トークン接頭辞 (文字列, 必須), スコープ (文字列の配列, 必須), 活動中 (真偽値, 必須), 最終使用時 (日付, オプション), パートナー (パートナー組織へのポインタ, 必須), 作成者 (ユーザーへのポインタ, 必須); objectId, createdAt, updatedAt (システム).
4. 使用ログ: パートナー (パートナー組織へのポインタ, 必須), apiKey (APIキーへのポインタ, 必須), エンドポイント (文字列, 必須), メソッド (文字列, 必須), ステータスコード (数値, 必須), リクエストカウント (数値, 必須), 発生時 (日付, 必須); objectId, createdAt, updatedAt (システム).
5. 開発者ドキュメント: タイトル (文字列, 必須), スラッグ (文字列, 必須), コンテンツ (文字列, 必須), APIバージョン (文字列, 必須), 公開済み (真偽値, 必須), 所有者 (ユーザーへのポインタ, 必須), パートナー (パートナー組織へのポインタ, オプション); objectId, createdAt, updatedAt (システム).

セキュリティ:
- ポータル管理者または指定された所有者だけがパートナーデータを更新できます。承認されたロールのみがAPIキーのレコードを作成、回転、または取り消すことができます。使用ログの読み取りを所有するパートナーとサポートロールに制限します。

認証:
- サインアップ、ログイン、ログアウト。

動作:
- パートナーをリストし、APIキーのレコードを作成および回転させ、使用ログのエントリをレビューし、開発者ドキュメントページを公開します。

デリバリー:
- Back4appアプリがスキーマ、ACL、CLPを持ち; パートナーアカウント、APIキー管理、使用ログ、開発者文書用のフロントエンド。

以下のボタンを押して、このテンプレートプロンプトが事前に入力された状態でエージェントを開きます。

これはテクノロジーのサフィックスなしの基本プロンプトです。生成されたフロントエンドスタックは後で適応できます。

数分でデプロイ月に50の無料プロンプトクレジットカードは不要

APIプレイグラウンド

GraphQLエンドポイントに対してAPIパートナーポータルスキーマを試す。レスポンスはモックデータを使用し、Back4appアカウントは必要ありません。

プレイグラウンドを読み込んでいます…

このテンプレートと同じスキーマを使用します。

スタックを選択

各カードを展開して、選択したスタックで PartnerOrganization、APIKey、UsageLog を統合する方法を確認してください。

Flutter APIパートナーポータルバックエンド

React APIパートナーポータルバックエンド

React ネイティブ APIパートナーポータルバックエンド

Next.js APIパートナーポータルバックエンド

JavaScript APIパートナーポータルバックエンド

Android APIパートナーポータルバックエンド

iOS APIパートナーポータルバックエンド

Vue APIパートナーポータルバックエンド

Angular APIパートナーポータルバックエンド

GraphQL APIパートナーポータルバックエンド

REST API APIパートナーポータルバックエンド

PHP APIパートナーポータルバックエンド

.NET APIパートナーポータルバックエンド

各テクノロジーで得られるもの

すべてのスタックは同じ API パートナーポータルバックエンドスキーマと API 契約を使用します。

統一されたポータルデータ構造

一貫したスキーマを使用して、ユーザー、PartnerOrganization、APIKey、UsageLog、および DeveloperDoc レコードを管理します。

API キーライフサイクル管理

所有権の履歴を失うことなく APIKey レコードを発行、回転、および取り消します。

サポートチームのための使用状況の可視性

パートナーが必要とする際に、エンドポイント、メソッド、およびステータスコードごとにUsageLogエントリを検査します。

ドキュメントのリリース追跡

パートナー開発者向けにapiVersion固有のノートを含むDeveloperDocの更新を公開します。

ポータルクライアントのためのREST/GraphQL API

1つのAPIレイヤーを通じて内部管理ツールとパートナー向けアプリを提供します。

パートナーのワークフローのための拡張可能なアーキテクチャ

ポータルコアを再構築することなく、アナウンスメントやWebhookサブスクリプションなどのクラスを追加します。

ポータルスタックの比較

すべてのサポートされている技術間でセットアップ速度、SDKスタイル、およびAIサポートを比較します。

フレームワークセットアップ時間ポータル特典SDKタイプAIサポート
約5分モバイルとウェブのパートナーポータル用の単一コードベース。型付きSDKフル
5分未満パートナーキーとログのための高速ウェブダッシュボード。入力されたSDKフル
~3〜7分パートナーサポートのためのクロスプラットフォームモバイルアプリ。入力されたSDKフル
迅速な(5分)セットアップキーとドキュメントのためのサーバーレンダリングされた管理ポータル。入力されたSDKフル
~3〜5分パートナーオペレーションのための軽量ウェブ統合。入力されたSDKフル
約5分パートナーオペレーションのためのネイティブ Android アプリ。型付きSDKフル
5分未満パートナーオペレーションのためのネイティブ iOS アプリ。型付きSDKフル
約3〜7分React的なウェブUIによる重要なレビューと文書。型付きSDKフル
迅速な(5分)セットアップアクセスおよび使用レビューのためのエンタープライズポータル。タイプされたSDKフル
2分未満パートナーポータル用の柔軟なGraphQL API。GraphQL APIフル
迅速な(2分)セットアップパートナーポータル用のREST API統合。REST APIフル
約3分パートナーポータルのためのサーバーサイド PHP バックエンド。REST APIフル
約3~7分パートナーポータルのための .NET バックエンド。タイプされたSDKフル

セットアップ時間は、このテンプレートスキーマを使用してプロジェクトのブートストラップから最初のPartnerOrganization、APIKey、またはUsageLogクエリまでの予想される期間を反映します。

ポータルの質問

このテンプレートを使用してAPIパートナーポータルバックエンドを構築する際の一般的な質問。

敏感な作業と締切に駆動される場合、健康的なAPIパートナーポータルのパイプラインはどのように見えますか?
構造化されたタスクと自由形式のメモのどちらが最も効果的なAPIパートナーポータルのワークフローはどれですか?
アクセスモデルはAPIパートナーポータルのパートナーや契約者に対して十分に細かいですか?
Flutterでキーとログのクエリをどのように実行しますか?
どのようにして Next.js Server Actions のAPIパートナーポータルアクセスを管理できますか?
React ネイティブキャッシュの使用ログはオフラインで使用できますか?
不正なキーアクセスを防ぐにはどうすればよいですか?
Android でパートナーの使用状況を表示する最良の方法は何ですか?
APIキーのローテーションフローはエンドツーエンドでどのように機能しますか?

世界中の開発者に信頼されています

Back4app テンプレートを使って API パートナーポータル製品を迅速に出荷するチームに参加しよう

G2 Users Love Us Badge

API パートナーポータルアプリを構築する準備はできていますか?

数分であなたのパートナーポータルプロジェクトを開始できます。クレジットカードは不要です。

テクノロジーを選択