新しい統合ごとにフェッチ呼び出しを手動で作成し、認証トークンを処理し、APIレスポンスを解析することは、Webアプリにとってアセンブリコードを書くようなものです。データフェッチのためのClaude Code Skillsは、HTTPリクエストを宣言的で再利用可能なツールに変え、認証パターン、ページネーション、およびレスポンス検証を理解し、ボイラープレートを排除しながらコードベース全体で一貫性を確保します。
開発ワークフローにおいてAPIネットワーキングスキルが重要な理由
すべての開発者は、反復的なAPIの配線作業に何時間も費やします。OAuth 2.0のヘッダーを設定したり、レート制限されたエンドポイントのために指数関数的バックオフを実装したり、予測不能なJSONレスポンスのためにタイプガードを記述したりする作業です。これらのタスクはエラーが発生しやすく、特定のサービスに密接に結合されているため、テストとメンテナンスが困難です。Claude Code Skillsは、この複雑さをバージョン管理され、テスト可能なツールに抽象化し、AIアシスタントが自然言語で呼び出すことができます。
命令型のAPI呼び出しから宣言的なデータフェッチへと移行します。fetch(url, { headers: {...} })と書く代わりに、意図を記述します:「GitHub APIからENVのトークンを使用してユーザーデータをフェッチし、型付けされた結果を返してください。」スキルは資格情報管理、リトライロジック、およびレスポンス解析を処理し、アプリケーションがすぐに利用できる強力な型付けされたデータを返します。
開発チームが最大限の生産性で共同作業できる、統合されたオールインワンプラットフォームをお探しですか?
Apidogはあなたのすべての要求に応え、Postmanをはるかに手頃な価格で置き換えます!
Claude Codeでデータフェッチスキルを設定する
ステップ1:Claude Codeをインストールし、MCPを設定する
Claude Code CLIをまだインストールしていない場合:
npm install -g @anthropic-ai/claude-code
claude --version # Should show >= 2.0.70
MCP設定ディレクトリとファイルを作成します:
# macOS/Linux
mkdir -p ~/.config/claude-code
touch ~/.config/claude-code/config.json
# Windows
mkdir %APPDATA%\claude-code
echo {} > %APPDATA%\claude-code\config.json

ステップ2:データフェッチスキルをクローンしてビルドする
公式のデータフェッチスキルは、REST、GraphQL、および汎用HTTPリクエストのパターンを提供します。
git clone https://github.com/anthropics/skills.git
cd skills/skills/data-fetching
npm install
npm run build
これにより、TypeScriptハンドラがdist/index.jsにコンパイルされます。
ステップ3:MCPがスキルをロードするように設定する
~/.config/claude-code/config.jsonを編集します:
{
"mcpServers": {
"data-fetching": {
"command": "node",
"args": ["/absolute/path/to/skills/data-fetching/dist/index.js"],
"env": {
"DEFAULT_TIMEOUT": "30000",
"MAX_RETRIES": "3",
"RATE_LIMIT_PER_MINUTE": "60",
"CREDENTIALS_STORE": "~/.claude-credentials.json"
}
}
}
}
重要:
argsには絶対パスを使用してください- 環境変数を設定してください:
DEFAULT_TIMEOUT:リクエストのタイムアウト時間(ミリ秒)MAX_RETRIES:5xxエラーに対する再試行回数RATE_LIMIT_PER_MINUTE:スロットルしきい値CREDENTIALS_STORE:暗号化された資格情報ファイルへのパス

ステップ4:資格情報ストアを設定する
トークンのハードコーディングを避けるために、資格情報ファイルを作成します:
# 暗号化された資格情報ストアを作成する
mkdir -p ~/.claude
echo '{}' > ~/.claude/credentials.json
chmod 600 ~/.claude/credentials.json
APIトークンを追加します:
{
"github": {
"token": "ghp_your_github_token_here",
"baseUrl": "https://api.github.com"
},
"slack": {
"token": "xoxb-your-slack-token",
"baseUrl": "https://slack.com/api"
},
"custom-api": {
"token": "Bearer your-jwt-token",
"baseUrl": "https://api.yourcompany.com",
"headers": {
"X-API-Version": "v2"
}
}
}
スキルは起動時にこのファイルを読み込み、リクエストに資格情報を挿入します。
ステップ5:インストールを確認する
claude
ロードされたら、以下を実行します:
/list-tools
以下が表示されるはずです:
Available tools:
- data-fetching:rest-get
- data-fetching:rest-post
- data-fetching:rest-put
- data-fetching:rest-delete
- data-fetching:graphql-query
- data-fetching:graphql-mutation
- data-fetching:raw-http
コアAPIリクエストパターン
1. RESTful GETリクエスト
ツール:data-fetching:rest-get
ユースケース:認証、ページネーション、キャッシュを使用してRESTエンドポイントからデータをフェッチする
パラメータ:
service:資格情報ストア(github, slack, custom-api)と一致するキーendpoint:APIパス(例:/users、/repos/owner/name)params:クエリパラメータオブジェクトcache:TTL(秒単位、オプション)transform:レスポンストランスフォーメーションのためのJMESPath式
例:GitHubユーザーのリポジトリをフェッチする
Use rest-get to fetch repositories for user "anthropics" from GitHub API, including pagination for 100 items per page, and return only name, description, and stargazers_count.
生成される実行:
// ハンドラが実行する:
const response = await fetch('https://api.github.com/users/anthropics/repos', {
headers: {
'Authorization': 'token ghp_your_github_token_here',
'Accept': 'application/vnd.github.v3+json'
},
params: {
per_page: 100,
page: 1
}
});
// JMESPathで変換する
const transformed = jmespath.search(response, '[*].{name: name, description: description, stars: stargazers_count}');
return transformed;
Claude Codeでの使用方法:
claude --skill data-fetching \
--tool rest-get \
--params '{"service": "github", "endpoint": "/users/anthropics/repos", "params": {"per_page": 100}, "transform": "[*].{name: name, description: description, stars: stargazers_count}"}'
2. POST/PUT/DELETEリクエスト
ツール:data-fetching:rest-post / rest-put / rest-delete
ユースケース:リソースの作成、更新、または削除
パラメータ:
service:資格情報ストアキーendpoint:APIパスbody:リクエストペイロード(オブジェクトまたはJSON文字列)headers:追加ヘッダーidempotencyKey:再試行の安全性のためのキー
例:GitHub Issueを作成する
Use rest-post to create an issue in the anthorpics/claude repository with title "Feature Request: MCP Tool Caching", body containing the description, and labels ["enhancement", "mcp"].
実行:
await fetch('https://api.github.com/repos/anthropics/claude/issues', {
method: 'POST',
headers: {
'Authorization': 'token ghp_...',
'Content-Type': 'application/json'
},
body: JSON.stringify({
title: "Feature Request: MCP Tool Caching",
body: "Description of the feature...",
labels: ["enhancement", "mcp"]
})
});
3. GraphQLクエリ
ツール:data-fetching:graphql-query
ユースケース:ネストされた関係を持つ複雑なデータフェッチ
パラメータ:
service:資格情報ストアキーquery:GraphQLクエリ文字列variables:クエリ変数オブジェクトoperationName:名前付き操作
例:コメント付きのリポジトリの問題をフェッチする
Use graphql-query to fetch the 10 most recent open issues from the anthorpics/skills repository, including title, author, comment count, and labels.
query RecentIssues($owner: String!, $repo: String!, $limit: Int!) {
repository(owner: $owner, name: $repo) {
issues(first: $limit, states: [OPEN], orderBy: {field: CREATED_AT, direction: DESC}) {
nodes {
title
author { login }
comments { totalCount }
labels(first: 5) { nodes { name } }
}
}
}
}
パラメータ:
{
"service": "github",
"query": "query RecentIssues($owner: String!, $repo: String!, $limit: Int!) { ... }",
"variables": {
"owner": "anthropics",
"repo": "skills",
"limit": 10
}
}
4. 生のHTTPリクエスト
ツール:data-fetching:raw-http
ユースケース:REST/GraphQLツールでカバーされないエッジケース
パラメータ:
url:完全なURLmethod:HTTPメソッドheaders:ヘッダーオブジェクトbody:リクエストボディtimeout:デフォルトのタイムアウトを上書きする
例:カスタムヘッダー付きのWebhook配信
Use raw-http to POST to https://hooks.slack.com/services/YOUR/WEBHOOK/URL with a JSON payload containing {text: "Deployment complete"}, and custom header X-Event: deployment-success.
高度なネットワーキングシナリオ
ページネーション処理
スキルはページネーションパターンを自動的に検出します:
// GitHub Linkヘッダーの解析
const linkHeader = response.headers.get('Link');
if (linkHeader) {
const nextUrl = parseLinkHeader(linkHeader).next;
if (nextUrl && currentPage < maxPages) {
return {
data: currentData,
nextPage: currentPage + 1,
hasMore: true
};
}
}
すべてのページをリクエストします:
Use rest-get to fetch all repositories for user "anthropics", handling pagination automatically until no more pages exist.
スキルはすべての結果のフラットな配列を返します。
レート制限とリトライロジック
リクエストごとにリトライ動作を設定します:
{
"service": "github",
"endpoint": "/rate_limit",
"maxRetries": 5,
"retryDelay": "exponential",
"retryOn": [429, 500, 502, 503, 504]
}
スキルはジッターを伴う指数関数的バックオフを実装します:
const delay = Math.min(
(2 ** attempt) * 1000 + Math.random() * 1000,
30000
);
await new Promise(resolve => setTimeout(resolve, delay));
同時リクエスト管理
複数のAPI呼び出しを効率的にバッチ処理します:
Use rest-get to fetch details for repositories: ["claude", "skills", "anthropic-sdk"], executing requests concurrently with a maximum of 3 parallel connections.
スキルはp-limitを使用して同時実行数を制限します:
import pLimit from 'p-limit';
const limit = pLimit(3); // 最大3つの同時接続
const results = await Promise.all(
repos.map(repo =>
limit(() => fetchRepoDetails(repo))
)
);
リクエストの傍受とモック
テストのために、実際APIにヒットせずにリクエストを傍受します:
// スキル設定内
"env": {
"MOCK_MODE": "true",
"MOCK_FIXTURES_DIR": "./test/fixtures"
}
これで、リクエストはJSONファイルからモックされたデータを返します:
// test/fixtures/github/repos/anthropics.json
[
{"name": "claude", "description": "AI assistant", "stars": 5000}
]
実践的なアプリケーション:GitHubダッシュボードの構築
ステップ1:リポジトリデータをフェッチする
Use rest-get to fetch all repositories from GitHub for organization "anthropics", including full description, star count, fork count, and open issues count. Cache results for 5 minutes.
ステップ2:コントリビューターデータで強化する
各リポジトリについて、上位のコントリビューターをフェッチします:
Use rest-get to fetch contributor statistics for repository "anthropics/claude", limit to top 10 contributors, and extract login and contributions count.
ステップ3:要約統計量を生成する
Claude Codeでデータを結合します:
const repos = await fetchAllRepos('anthropics');
const enrichedRepos = await Promise.all(
repos.map(async (repo) => {
const contributors = await fetchTopContributors('anthropics', repo.name);
return { ...repo, topContributors: contributors };
})
);
return {
totalStars: enrichedRepos.reduce((sum, r) => sum + r.stars, 0),
totalForks: enrichedRepos.reduce((sum, r) => sum + r.forks, 0),
repositories: enrichedRepos
};
ステップ4:ダッシュボードを公開する
Use rest-post to create a GitHub Pages site with the dashboard data using the GitHub API to commit to the gh-pages branch.
エラー処理と回復力
スキルはエラーを適切に処理するために分類します:
// 4xxエラー:クライアントエラー
if (response.status >= 400 && response.status < 500) {
throw new SkillError('client_error', `Invalid request: ${response.status}`, {
statusCode: response.status,
details: await response.text()
});
}
// 5xxエラー:サーバーエラー(再試行可能)
if (response.status >= 500) {
throw new SkillError('server_error', `Server error: ${response.status}`, {
retryable: true,
statusCode: response.status
});
}
// ネットワークエラー:接続障害
if (error.code === 'ECONNREFUSED' || error.code === 'ETIMEDOUT') {
throw new SkillError('network_error', 'Network unreachable', {
retryable: true,
originalError: error.message
});
}
Claude Codeは構造化されたエラーを受け取り、再試行、中止、またはユーザーの介入を要求するかどうかを決定できます。
結論
Claude Code Skills for APIネットワーキングは、アドホックなHTTPリクエストを信頼性が高く、タイプセーフで、監視可能なデータフェッチツールに変換します。資格情報管理を一元化し、スマートな再試行を実装し、構造化されたエラー処理を提供することで、API統合の最も一般的なバグの原因を排除します。まず、rest-get、rest-post、graphql-query、raw-httpの4つのコアツールから始め、特定のユースケースに合わせて拡張してください。スキル構成への投資は、コードの一貫性と開発速度においてすぐに報われます。
データフェッチスキルが内部APIと連携する場合、信頼性の高い契約をAI駆動型統合が利用できるように、Apidogでそれらのエンドポイントを検証してください。
