From vscode-extensions-toolkit
Configures VSCode with httpYac for API testing: converts docs to .http files (10+ endpoints), auth pre-request scripts, response chaining, multi-file envs, Git CI/CD workflows.
npx claudepluginhub libukai/awesome-agent-skills --plugin vscode-extensions-toolkitThis skill uses the workspace's default tool permissions.
Transform API documentation into executable, testable .http files with httpYac. This skill provides workflow guidance for creating production-ready API collections with scripting, authentication, environment management, and CI/CD integration.
README.mdassets/env.templateassets/http-file.templateassets/httpyac-config.templatereferences/ADVANCED_FEATURES.mdreferences/AUTHENTICATION_PATTERNS.mdreferences/CLI_CICD.mdreferences/COMMON_MISTAKES.mdreferences/DOCUMENTATION.mdreferences/ENVIRONMENT_MANAGEMENT.mdreferences/REQUEST_DEPENDENCIES.mdreferences/SCRIPTING_TESTING.mdreferences/SECURITY.mdreferences/SYNTAX.mdreferences/SYNTAX_CHEATSHEET.mdGenerates .connekt.kts Kotlin scripts using Connekt DSL for HTTP automation, REST API testing, and endpoint workflows. Reads connekt.env.json for env vars; follows request-then-assert structure.
Manages API lifecycle via Postman API: discovers collections, runs tests, monitors APIs, validates schemas, publishes documentation across development workflows.
Assists with API testing operations using curl via bash, read/write/edit files, and grep. Covers REST, GraphQL, OpenAPI, authentication, and design patterns in API development.
Share bugs, ideas, or general feedback.
Transform API documentation into executable, testable .http files with httpYac. This skill provides workflow guidance for creating production-ready API collections with scripting, authentication, environment management, and CI/CD integration.
Objective: Understand API structure and propose file organization.
Key Questions:
Propose Structure to User:
Identified API modules:
- Authentication (2 endpoints)
- Users (5 endpoints)
- Articles (3 endpoints)
Recommended: Multi-file structure
- auth.http
- users.http
- articles.http
Proceed with this structure?
📖 Detailed Guide: references/WORKFLOW_GUIDE.md
🚨 MANDATORY: Always start with templates from assets/ directory.
Template Usage Sequence:
assets/http-file.templatereferences/SYNTAX.mdAvailable Templates:
assets/http-file.template → Complete .http file structureassets/httpyac-config.template → Configuration fileassets/env.template → Environment variablesKey Files to Create:
.http files → API requests.env → Environment variables (gitignored).env.example → Template with placeholders (committed).httpyac.json → Configuration (optional)📖 File Structure Guide: references/WORKFLOW_GUIDE.md#phase-2
Select Pattern Based on API Type:
| API Type | Pattern | Reference Location |
|---|---|---|
| Static token | Simple Bearer | references/AUTHENTICATION_PATTERNS.md#pattern-1 |
| OAuth2 credentials | Auto-fetch token | references/AUTHENTICATION_PATTERNS.md#pattern-2 |
| Token refresh | Auto-refresh | references/AUTHENTICATION_PATTERNS.md#pattern-3 |
| API Key | Header or query | references/AUTHENTICATION_PATTERNS.md#pattern-5-6 |
Quick Example:
# @name login
POST {{baseUrl}}/auth/login
Content-Type: application/json
{
"email": "{{user}}",
"password": "{{password}}"
}
{{
// Store token for subsequent requests
if (response.statusCode === 200) {
exports.accessToken = response.parsedBody.access_token;
console.log('✓ Token obtained');
}
}}
###
# Use token in protected request
GET {{baseUrl}}/api/data
Authorization: Bearer {{accessToken}}
📖 Complete Patterns: references/AUTHENTICATION_PATTERNS.md
Search Pattern: grep -n "Pattern [0-9]:" references/AUTHENTICATION_PATTERNS.md
1. Environment Variables (from .env file)
@baseUrl = {{API_BASE_URL}}
@token = {{API_TOKEN}}
✅ Use @variable = {{ENV_VAR}} syntax at file top
2. Utility Functions (in script blocks)
{{
// ✅ CORRECT: Export with exports.
exports.validateResponse = function(response, actionName) {
return response.statusCode === 200;
};
}}
###
GET {{baseUrl}}/api/test
{{
// ✅ CORRECT: Call WITHOUT exports.
if (validateResponse(response, 'Test')) {
console.log('Success');
}
}}
3. Response Data (post-response only)
GET {{baseUrl}}/users
{{
// ✅ Store for next request
exports.userId = response.parsedBody.id;
}}
{{
// ❌ WRONG: Don't use exports/process.env for env vars
exports.baseUrl = process.env.API_BASE_URL; // NO!
// ❌ WRONG: Don't use exports when calling
if (exports.validateResponse(response)) { } // NO!
}}
### delimiter between requests@variable = {{ENV_VAR}}exports.func = function() {}.env.example created📖 Complete Syntax: references/SYNTAX.md
📖 Common Mistakes: references/COMMON_MISTAKES.md
📖 Cheatsheet: references/SYNTAX_CHEATSHEET.md
# ============================================================
# Article Endpoints - API Name
# ============================================================
# V1-Basic | V2-Metadata | V3-Full Content⭐
# Docs: https://api.example.com/docs
# ============================================================
@baseUrl = {{API_BASE_URL}}
### Get Articles V3 ⭐
# @name getArticlesV3
# @description Full content + Base64 HTML | Requires auth | Auto-decode
GET {{baseUrl}}/articles?page=1
Authorization: Bearer {{accessToken}}
DO:
# =============|: Detail 1 | Detail 2@description for hover detailsDON'T:
<!-- --> (visible in UI)### decorations📖 Complete Guide: See SKILL.md Phase 3.5 for before/after examples
# httpYac: Protect secrets
.env
.env.local
.env.*.local
.env.production
# httpYac: Ignore cache
.httpyac.cache
*.httpyac.cache
httpyac-output/
ALWAYS:
.env in .gitignore.env.example without real secretstoken.substring(0, 10) + '...'NEVER:
📖 Complete Guide: references/SECURITY.md
Search Pattern: grep -n "gitignore\|secrets" references/SECURITY.md
Load references when:
| Situation | File to Load | grep Search Pattern |
|---|---|---|
| Setting up authentication | references/AUTHENTICATION_PATTERNS.md | grep -n "Pattern [0-9]" |
| Script execution errors | references/SCRIPTING_TESTING.md | grep -n "Pre-Request|Post-Response" |
| Environment switching | references/ENVIRONMENT_MANAGEMENT.md | grep -n "\.env|\.httpyac" |
| Security configuration | references/SECURITY.md | grep -n "gitignore|secrets" |
| Team documentation | references/DOCUMENTATION.md | grep -n "README|CHANGELOG" |
| Advanced features | references/ADVANCED_FEATURES.md | grep -n "GraphQL|WebSocket|gRPC" |
| CI/CD integration | references/CLI_CICD.md | grep -n "GitHub Actions|GitLab" |
| Complete syntax reference | references/SYNTAX.md | grep -n "@|??|{{" references/SYNTAX.md |
Quick References (Always Available):
references/SYNTAX_CHEATSHEET.md - Common syntax patternsreferences/COMMON_MISTAKES.md - Error preventionreferences/WORKFLOW_GUIDE.md - Complete workflowThis skill follows a 7-phase workflow. Phases 1-3 covered above. Remaining phases:
Phase 4: Scripting and Testing
references/SCRIPTING_TESTING.mdPhase 5: Environment Management
references/ENVIRONMENT_MANAGEMENT.mdPhase 6: Documentation
references/DOCUMENTATION.mdPhase 7: CI/CD Integration (Optional)
references/CLI_CICD.mdBefore completion, verify:
Structure:
###Syntax:
@var = {{ENV_VAR}}Security:
.env in .gitignore.env.example has placeholdersFunctionality:
Documentation:
| Symptom | Likely Cause | Solution |
|---|---|---|
| "Variable not defined" | Not declared with @ | Add @var = {{ENV_VAR}} at top |
| "Function not defined" | Not exported | Use exports.func = function() {} |
| Scripts not executing | Wrong syntax/position | Verify {{ }} placement |
| Token not persisting | Using local variable | Use exports.token instead |
| Environment not loading | Wrong file location | Place .env in project root |
📖 Complete Troubleshooting: references/TROUBLESHOOTING.md
Collection is production-ready when:
Before Generating Files:
While Generating:
assets/After Generation:
Common User Requests:
references/AUTHENTICATION_PATTERNS.md → Choose pattern{{ }} syntax, .env loaded# @name and exports variables{{ }} block with assertionsreferences/CLI_CICD.md → Provide examplesVersion: 2.0.0 (Refactored) Last Updated: 2025-12-15 Based on: httpYac v6.x
Key Changes from v1.x:
Features: