improve-sdk-naming
improve-sdk-naming
Improve SDK method naming using AI-powered suggestions or manual overrides. Covers both automatic speakeasy suggest commands and manual naming with x-speakeasy-group and x-speakeasy-name-override extensions.
When to Use
Use this skill when you want AI-powered suggestions from Speakeasy:
- SDK methods have ugly auto-generated names like
GetApiV1Users - You want Speakeasy AI to suggest better operation IDs
- You want AI-generated suggestions for error types
- Looking to improve spec quality automatically using
speakeasy suggest - User says: "suggest improvements", "speakeasy suggest", "AI suggestions", "suggest operation-ids", "suggest error-types", "get AI recommendations"
NOT for: Manually creating overlays (see manage-openapi-overlays instead)
Inputs
| Input | Required | Description |
|---|---|---|
| OpenAPI spec | Yes | Path to the spec file (-s) |
| Authentication | Yes | Via speakeasy auth login or SPEAKEASY_API_KEY env var |
| Output file | No | Path for overlay output (-o) |
Outputs
| Output | Description |
|---|---|
| Suggestions | Better operation names or error types printed to console |
| Overlay file | Optional: saves suggestions as an overlay YAML file (-o) |
Prerequisites
For non-interactive environments (CI/CD, AI agents), set the API key as an environment variable:
export SPEAKEASY_API_KEY="<your-api-key>"
For interactive use, authenticate directly:
speakeasy auth login
Command
AI-Powered Suggestions
# 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
Check Current Operation IDs
Run the suggest command without -o to preview what would change:
speakeasy suggest operation-ids -s openapi.yaml
SDK Method Naming Convention
Speakeasy generates grouped SDK methods from operation IDs. The naming convention uses x-speakeasy-group for the namespace and x-speakeasy-name-override for the method name.
| HTTP Method | SDK Usage | Operation ID |
|---|---|---|
| GET (list) | sdk.users.list() |
users_list |
| GET (single) | sdk.users.get() |
users_get |
| POST | sdk.users.create() |
users_create |
| PUT | sdk.users.update() |
users_update |
| DELETE | sdk.users.delete() |
users_delete |
The operation ID format is {group}_{method}. Speakeasy splits on the underscore to create the namespace and method name in the generated SDK.
Example
Step 1: Get AI Suggestions
speakeasy suggest operation-ids -s openapi.yaml -o operation-ids-overlay.yaml
This analyzes your spec and generates an overlay that transforms names like:
get_api_v1_users_list->listUserspost_api_v1_users_create->createUser
Step 2: Review and Apply the Overlay
The AI-generated overlay (from -o) creates naming improvements using x-speakeasy-group and x-speakeasy-name-override.
Note: For manual overlay creation, use the manage-openapi-overlays skill instead of this skill.
Step 3: Add the Overlay to workflow.yaml
sources:
my-api:
inputs:
- location: ./openapi.yaml
overlays:
- location: ./operation-ids-overlay.yaml
Step 4: Regenerate the SDK
speakeasy run --output console
Error Type Suggestions
The suggest error-types command analyzes your API and suggests structured error responses:
speakeasy suggest error-types -s openapi.yaml
This suggests:
- Common HTTP error codes (400, 401, 404, 500)
- Custom error schemas appropriate for your API
Output as an overlay:
speakeasy suggest error-types -s openapi.yaml -o error-types-overlay.yaml
What NOT to Do
- Do NOT modify operationIds directly in the source spec if it is externally managed. Use overlays instead.
- Do NOT use generic names like
getorpostwithout a group. Always pairx-speakeasy-name-overridewithx-speakeasy-group. - Do NOT forget to add the generated overlay to
workflow.yamlafter creating it. Without this step, the names will not change in the generated SDK. - Do NOT create duplicate operation names across different groups. Each
{group}_{method}combination must be unique.
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
| "unauthorized" | Missing or invalid API key | Set SPEAKEASY_API_KEY env var or run speakeasy auth login |
| Names unchanged after regeneration | Overlay not added to workflow | Add the overlay to the overlays list in workflow.yaml |
| No suggestions returned | Spec already has good naming | No action needed; names are already well-structured |
| Duplicate method names | Similar endpoints share names | Use unique x-speakeasy-name-override values for each endpoint |
| Timeout during suggest | Very large spec | Try running on a smaller subset or increase timeout |
More from speakeasy-api/skills
writing-openapi-specs
Reference guide for OpenAPI specification best practices, naming conventions, and expressing complex REST API patterns like polymorphism, enums, file uploads, and server-sent events. Use when writing or improving OpenAPI specs to ensure they follow established conventions and generate quality SDKs.
77extract-openapi-from-code
Use when extracting or generating an OpenAPI spec from existing API code. Triggers on "extract OpenAPI", "code first", "generate spec from code", "FastAPI OpenAPI", "Spring Boot OpenAPI", "NestJS swagger", "Django OpenAPI", "Flask OpenAPI", "Rails swagger", "Laravel OpenAPI", "existing API code
69speakeasy-context
Speakeasy workflow: run 'agent context' FIRST, do task, run 'agent feedback' LAST. Triggers on speakeasy, SDK, OpenAPI.
51diagnose-generation-failure
Use when SDK generation failed or seeing errors. Triggers on "generation failed", "speakeasy run failed", "SDK build error", "workflow failed", "Step Failed", "why did generation fail
50manage-openapi-overlays
Use when creating, applying, or validating overlay files including x-speakeasy extensions. Covers overlay syntax, JSONPath targeting, retries, pagination, naming, grouping, open enums, global headers, custom security. Triggers on "create overlay", "apply overlay", "overlay file", "x-speakeasy", "add extension", "configure retries", "add pagination", "overlay for retries".
49customize-sdk-hooks
|
48