improve-sdk-naming について
Speakeasy 生成 SDK のメソッド名やエラー型名を改善するスキルです。OpenAPI 仕様を扱う開発者向けに、Speakeasy CLI による AI 提案と、確認後の提案をオーバーレイとして適用する方法を提供します。
主な機能
- 01CLI で operation ID を提案
- 02構造化エラー型を提案
- 03提案をオーバーレイファイルに出力
- 04グループ化と名前上書き拡張の利用
活用シーン
- 01分かりにくい SDK 自動生成メソッド名の改善
- 02再生成前にメソッド名の提案を確認
- 03API 仕様への構造化エラー型の提案追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ speakeasy-api/ sdk-generation-skills --skill improve-sdk-namingインストール後、Claude Code で/improve-sdk-namingを入力して読み込まれたか確認します。
詳細
improve-sdk-naming
AI を活用した提案または手動でのオーバーライドにより、SDK メソッドの命名を改善します。自動実行する speakeasy suggest コマンドと、x-speakeasy-group および x-speakeasy-name-override 拡張機能を使用した手動の命名の両方を扱います。
使用するタイミング
Speakeasy から AI を活用した提案を得たい場合に、このスキルを使用します。
- SDK メソッドが
GetApiV1Usersのような不自然な自動生成名になっている - Speakeasy AI に、より適切なオペレーション ID を提案してほしい
- エラー型の AI 生成による提案がほしい
speakeasy suggestを使って、仕様の品質を自動的に改善したい- ユーザーが「改善を提案して」「speakeasy suggest」「AI の提案」「オペレーション ID を提案して」「エラー型を提案して」「AI の推奨事項を取得して」と言う場合
対象外:オーバーレイの手動作成(代わりに manage-openapi-overlays を参照してください)
入力
| 入力 | 必須 | 説明 |
|---|---|---|
| OpenAPI 仕様 | はい | 仕様ファイルのパス(-s) |
| 認証 | はい | speakeasy auth login または SPEAKEASY_API_KEY 環境変数を使用 |
| 出力ファイル | いいえ | オーバーレイ出力先のパス(-o) |
出力
| 出力 | 説明 |
|---|---|
| 提案 | より適切なオペレーション名またはエラー型をコンソールに出力 |
| オーバーレイファイル | 任意:提案をオーバーレイ YAML ファイルとして保存(-o) |
前提条件
非対話型の環境(CI/CD、AI エージェント)では、API キーを環境変数として設定します。
export SPEAKEASY_API_KEY="<your-api-key>"
対話型の使用では、直接認証します。
speakeasy auth login
コマンド
AI を活用した提案
# Suggest better operation IDs (SDK method names)
speakeasy suggest operation-ids -s <spec-path>
# Suggest error type definitions
speakeasy suggest error-types -s <spec-path>
# Output suggestions as an overlay file
speakeasy suggest operation-ids -s <spec-path> -o suggested-overlay.yaml
現在のオペレーション ID を確認する
変更内容をプレビューするには、-o を付けずに suggest コマンドを実行します。
speakeasy suggest operation-ids -s openapi.yaml
SDK メソッドの命名規則
Speakeasy は、オペレーション ID からグループ化された SDK メソッドを生成します。命名規則では、名前空間に x-speakeasy-group を、メソッド名に x-speakeasy-name-override を使用します。
| HTTP メソッド | SDK の使用方法 | オペレーション ID |
|---|---|---|
| GET(一覧) | sdk.users.list() | users_list |
| GET(単一) | sdk.users.get() | users_get |
| POST | sdk.users.create() | users_create |
| PUT | sdk.users.update() | users_update |
| DELETE | sdk.users.delete() | users_delete |
オペレーション ID の形式は {group}_{method} です。Speakeasy はアンダースコアで分割し、生成される SDK の名前空間とメソッド名を作成します。
例
ステップ 1:AI の提案を取得する
speakeasy suggest operation-ids -s openapi.yaml -o operation-ids-overlay.yaml
このコマンドは仕様を分析し、次のような名前を変換するオーバーレイを生成します。
get_api_v1_users_list->listUserspost_api_v1_users_create->createUser
ステップ 2:オーバーレイを確認して適用する
AI が生成したオーバーレイ(-o による出力)は、x-speakeasy-group と x-speakeasy-name-override を使って命名を改善します。
注:オーバーレイを手動で作成する場合は、このスキルではなく manage-openapi-overlays スキルを使用してください。
ステップ 3:オーバーレイを workflow.yaml に追加する
sources:
my-api:
inputs:
- location: ./openapi.yaml
overlays:
- location: ./operation-ids-overlay.yaml
ステップ 4:SDK を再生成する
speakeasy run --output console
エラー型の提案
suggest error-types コマンドは API を分析し、構造化されたエラーレスポンスを提案します。
speakeasy suggest error-types -s openapi.yaml
次の内容が提案されます。
- 一般的な HTTP エラーコード(400、401、404、500)
- API に適したカスタムエラースキーマ
オーバーレイとして出力します。
speakeasy suggest error-types -s openapi.yaml -o error-types-overlay.yaml
してはいけないこと
- 外部で管理されている場合、ソース仕様の operationIds を直接変更しないでください。代わりにオーバーレイを使用してください。
- グループを指定せずに
getやpostのような汎用名を使用しないでください。必ずx-speakeasy-name-overrideとx-speakeasy-groupを組み合わせてください。 - 作成後、生成されたオーバーレイを
workflow.yamlに追加し忘れないでください。この手順を行わないと、生成される SDK の名前は変わりません。 - 異なるグループ間で重複するオペレーション名を作成しないでください。各
{group}_{method}の組み合わせは一意である必要があります。
トラブルシューティング
| エラー | 原因 | 解決方法 |
|---|---|---|
| "unauthorized" | API キーがない、または無効です | SPEAKEASY_API_KEY 環境変数を設定するか、speakeasy auth login を実行してください |
| 再生成後も名前が変わらない | オーバーレイがワークフローに追加されていません | workflow.yaml の overlays リストにオーバーレイを追加してください |
| 提案が返されない | 仕様ですでに適切な名前が付いています | 対応は不要です。名前はすでに適切に構成されています |
| メソッド名が重複している | 類似したエンドポイントで同じ名前が使われています | 各エンドポイントに一意の x-speakeasy-name-override の値を設定してください |
| suggest の実行中にタイムアウトする | 仕様が非常に大きいです | より小さなサブセットで実行するか、タイムアウトを延長してください |