SDK統合ガイド

各言語・フレームワーク向けのSDK統合方法

クイックスタート

  1. 1アカウント登録 → 組織とプロジェクトを作成
  2. 2プロジェクト → 環境 → SDK キーをコピー
  3. 3使用言語のSDKをインストール(下記参照)
  4. 4フラグを作成してコードで評価

Node.js / TypeScript

npm install @feature-flags/node-sdk
typescript
import FeatureFlags from '@feature-flags/node-sdk';

const client = new FeatureFlags({
  sdkKey: process.env.FF_SDK_KEY,
  // Optional: stream for real-time updates
  streaming: true,
});

await client.waitForInitialization();

// Boolean flag
const isEnabled = await client.variation(
  'new-payment-flow',
  { userId: 'usr_abc123', plan: 'pro' },
  false // default
);

// String flag (A/B test)
const buttonCopy = await client.variation(
  'checkout-button-copy',
  { userId: 'usr_abc123' },
  'Buy Now'
);

// Number flag
const maxItems = await client.variation(
  'max-items-per-cart',
  { userId: 'usr_abc123' },
  50
);

Python

pip install feature-flags-sdk
python
import feature_flags

client = feature_flags.Client(
    sdk_key=os.environ['FF_SDK_KEY']
)
client.initialize()

# Boolean flag
is_enabled = client.variation(
    'new-payment-flow',
    {'user_id': 'usr_abc123', 'plan': 'pro'},
    False  # default
)

if is_enabled:
    return render_new_checkout()

React / Next.js

npm install @feature-flags/react
tsx
import { FeatureFlagsProvider, useFlag } from '@feature-flags/react';

// Wrap your app
function App() {
  return (
    <FeatureFlagsProvider
      sdkKey={process.env.NEXT_PUBLIC_FF_SDK_KEY}
      context={{ userId: user.id, plan: user.plan }}
    >
      <YourApp />
    </FeatureFlagsProvider>
  );
}

// Use in components
function Checkout() {
  const newFlow = useFlag('new-payment-flow', false);

  if (newFlow) {
    return <NewCheckoutFlow />;
  }
  return <LegacyCheckout />;
}

REST API (cURL)

bash
# Evaluate a flag via REST API
curl -X POST https://your-domain.com/api/v1/flags/evaluate \
  -H "Authorization: Bearer ff_live_your_sdk_key" \
  -H "Content-Type: application/json" \
  -d '{
    "flag_key": "new-payment-flow",
    "context": {
      "userId": "usr_abc123",
      "plan": "pro"
    }
  }'

# Response:
# { "value": true, "reason": "TARGETING_RULE_MATCH" }

REST API リファレンス

GET
/api/v1/flags

プロジェクト内のフラグ一覧を取得

SDK Key
POST
/api/v1/flags/evaluate

コンテキストに基づいてフラグを評価

SDK Key
POST
/api/v1/flags

新規フラグを作成

Management Key
PATCH
/api/v1/flags/:key/environments/:env

環境設定を更新(有効/無効、ルール)

Management Key