Claude-skill-registry httpyac
Work with httpyac .http files for HTTP, gRPC, GraphQL, and WebSocket API testing and contract validation. Use when creating or executing API test requests.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/httpyac" ~/.claude/skills/majiayu000-claude-skill-registry-httpyac && rm -rf "$T"
manifest:
skills/data/httpyac/SKILL.mdsource content
httpyac API Testing
Work with httpyac .http files to test and validate HTTP, gRPC, GraphQL, and WebSocket APIs following established patterns and best practices.
Quick Start
This Skill provides comprehensive rules for working with httpyac. Before any httpyac task:
- Read HTTPYAC-RULES.md for all protocol-specific rules
- STRICTLY follow these rules while creating or executing .http files
- RESPECT rules by severity: Critical [C] > High [H] > Medium [M] > Low [L]
- Understand proto file paths relative to .http file location for gRPC
When to Use This Skill
- Creating new .http files for API testing
- Writing HTTP REST requests with authentication
- Creating gRPC requests (unary or streaming)
- Crafting GraphQL queries and mutations
- Building WebSocket test scenarios
- Validating API contracts against proto definitions
- Debugging API integration issues
- Executing API tests via CLI
Rule Categories Overview
The HTTPYAC-RULES.md file contains detailed rules in these categories:
- [P] Protocol Selection: Choose appropriate protocol based on service definition
- [H] HTTP Requests: REST API patterns, headers, authentication, body formats
- [G] gRPC Requests: Proto imports, unary and streaming patterns, message formatting
- [Q] GraphQL Requests: Queries, mutations, fragments, variable passing
- [W] WebSocket Requests: Connections, streaming, bidirectional communication
- [M] Meta Data and Variables: Request naming, dependencies, variable scoping
- [S] Scripting and Testing: Pre/post-request scripts, assertions, async patterns
- [E] Environment and Configuration: CLI execution, proto path resolution, variables
Rule Severity Levels
- [C]ritical: Must never be violated - will cause execution failure
- [H]igh: Should almost never be violated - core patterns
- [M]edium: Follow unless good reason not to - best practices
- [L]ow: Guidelines and preferences - style choices
MCP Integration
This skill works best with:
serena MCP - for proto file discovery and navigation:
: Locate proto files and existing .http examplesfind_file
: Read proto definitions to understand service contractsread_file
: Find existing patterns across .http filessearch_for_pattern
: Understand proto service structureget_symbols_overview
: Locate specific service methodsfind_symbol
context7 MCP - for up-to-date httpyac documentation:
: Get httpyac library IDresolve-library-id
: Fetch documentation for specific httpyac featuresget-library-docs
Troubleshooting
Proto file not found:
- Verify proto path is relative from .http file to proto file
- Count directories from .http file location to proto location
- Ensure
points to proto root directory for nested importsincludeDirs - Use serena MCP
to locate proto filesfind_file
gRPC connection failure:
- Verify
variable is defined{{HOST}} - Check service and method names match proto exactly
- Ensure Authorization header if required
- Check gRPC status code in response (0 = success)
Variable not defined:
- Check if request has
metadata for capture@name - Verify
or@ref
for dependent requests@forceRef - Check variable syntax:
not{{variable}}{variable} - Ensure referenced request executed before current request
CLI execution error:
- Use
for output format and-o=body
to execute all requests-a - Example:
httpyac -o=body -a ./path/to/file.http - Check if .http file path is correct relative to current directory
Example Workflow
When creating a new API test:
- Locate the proto file:
with patternfind_file - Read proto to understand service contract:
read_file - Create .http file in desired location
- Calculate proto path relative to .http file location
- Add proto import with correct relative path and includeDirs
- Write request with proper protocol syntax
- Add variables and authentication
- Execute from CLI:
httpyac -o=body -a ./path/to/file.http - Add assertions in post-request script if needed