Define API Routes Once.
Test Directly in VS Code.
Engineered by Utkarsh Kumar (utkarshkumar712). The lightweight, declarative API test runner built directly into your editor with Jupyter-style CodeLens triggers, zero-script variable chaining, and 100% offline privacy.
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Built for Serious Backend Engineers
Everything required to test, chain, and document REST endpoints inside your workspace without context switching.
Declarative .rcase Schema
Define endpoint paths, methods, and base URLs once. Nest unlimited success and failure scenarios cleanly without maintaining sprawling test scripts.
Jupyter-Style Inline CodeLens
Floating action triggers render right above endpoints. Execute entire suites, specific routes, or individual cases with one click from your code.
Scriptless Variable Chaining
Extract tokens, user IDs, and transaction references with capture dot notation. Cascades automatically into downstream headers and path params.
Dynamic Mock Generators
Prevent duplicate primary key collisions. Inject live {{$uuid}}, {{$timestamp}}, and {{$randomInt}} placeholders into payloads and headers on every run.
Native OpenAPI 3.x Importer
Import OpenAPI 3.0 / Swagger 2.0 specifications with zero external dependencies. Automatically generates endpoints, methods, path parameters, and request schemas.
Automatic Secret Redaction
Zero telemetry. Your tokens and credentials stay 100% on your local machine. Authorization headers, API keys, and cookie tokens are masked with [REDACTED] in logs.
See Real RouteCase Suites
Clean, human-readable JSON files committed straight to Git alongside your application code.
auth-pipeline.rcase — Login and cascade JWT token to protected endpoint
Zero JavaScript Required{
"baseUrl": "https://api.myapp.dev",
"tests": [
{
"name": "Authenticate and Capture Token",
"method": "POST",
"path": "/v1/auth/login",
"success": [{
"name": "Extract accessToken to memory",
"body": { "email": "admin@myapp.dev", "password": "{{ADMIN_PASS}}" },
"capture": { "sessionToken": "data.accessToken", "orgId": "data.org.id" },
"expect": { "status": 200 }
}]
},
{
"name": "Fetch Protected Analytics",
"method": "GET",
"path": "/v1/organizations/{orgId}/analytics",
"headers": { "Authorization": "Bearer {{sessionToken}}" },
"success": [{
"name": "Returns 200 with captured org context",
"params": { "orgId": "{{orgId}}" },
"expect": { "status": 200 }
}]
}
]
}create-user.rcase — Insert fresh record with dynamic UUIDs & timestamps
Collision-Free Mocking{
"baseUrl": "http://localhost:3000",
"tests": [{
"name": "Create User Record",
"method": "POST",
"path": "/api/users",
"headers": { "Content-Type": "application/json" },
"success": [{
"name": "Inject unique email, tracking UUID, and timestamp",
"body": {
"userId": "{{$uuid}}",
"email": "qa_tester_{{$randomInt}}@example.com",
"createdAt": "{{$isoTimestamp}}"
},
"expect": { "status": 201, "maxDurationMs": 200 }
}]
}]
}assertions.rcase — Verify status codes, body equality & latency thresholds
Strict Contract Guard{
"baseUrl": "https://api.internal.dev",
"tests": [{
"name": "Check Health and Performance SLA",
"method": "GET",
"path": "/healthz",
"success": [{
"name": "Verify service uptime within 150ms SLA",
"expect": {
"status": 200,
"maxDurationMs": 150,
"body": { "status": "healthy", "database": "connected" }
}
}],
"failure": [{
"name": "Reject without API key",
"headers": { "X-API-Key": "invalid" },
"expect": { "status": 401 }
}]
}]
}.rcase.env — Local vs Staging environment variable resolution
Hierarchical Precedence# RouteCase Workspace Environment (.rcase.env)
# Priority: In-Memory Captured > .rcase.env > System Process Env
API_BASE_URL=http://localhost:8080/v2
ADMIN_EMAIL=root@local.dev
ADMIN_PASS=supersecret_dev_pass
PAYMENT_GATEWAY_KEY=sk_test_51H8...
# RouteCase automatically masks keys containing PASS, SECRET, or KEY in editor output!How RouteCase Works in 4 Steps
From declarative contract definition to in-memory variable cascades directly within your IDE.
Define Contract
Structure routes, endpoints, and mock input variations in clean .rcase JSON with instant VS Code schema validation.
Trigger In-Editor
Run full suites, individual routes, or isolated test cases using floating Jupyter-style CodeLens cells with one click.
Verify Assertions
Assert HTTP status codes, structured body JSON equality, substring containment, and strict latency SLA thresholds.
Cascade Variables
Capture auth tokens and IDs from successful responses to inject them into downstream test cases automatically.
Why Developers Choose RouteCase
Comparing architectural capabilities against Postman, REST Client, and Thunder Client.
| Capability | RouteCase (Recommended) | Postman | REST Client | Thunder Client |
|---|---|---|---|---|
| Native VS Code Integration | ✅ Native In-Editor | ❌ External Heavyweight App | ✅ In-Editor | ✅ In-Editor |
| Declarative JSON Schema | ✅ Yes .rcase | ❌ Proprietary JSON | ❌ Plain Text .http | ❌ Proprietary |
| Jupyter-Style Inline CodeLens | ✅ Floating Action Cells | ❌ None | ⚠️ Basic Line Link | ❌ Separate GUI Tab |
| Response Variable Chaining | ✅ Built-in capture | ⚠️ Requires JS Scripts | ⚠️ Complex Regex | ⚠️ Manual GUI |
| Built-in Dynamic Generators | ✅ Built-in {{$uuid}} | ✅ Dynamic Mocking | ❌ Limited | ⚠️ Partial |
| Environment Variables (.env) | ✅ Supported .rcase.env | ⚠️ Cloud Workspaces | ⚠️ Settings-based | ⚠️ Environment Tabs |
| Instant Copy as cURL | ✅ Right-Click & Editor Menu | ✅ Supported | ⚠️ Manual | ✅ Supported |
| OpenAPI / Swagger Importer | ✅ Native Zero-Dep OpenAPI 3.x | ⚠️ Cloud Importer | ❌ Plugin Required | ⚠️ Paid Tier |
| Zero Cloud / No Forced Login | ✅ 100% Offline & Free | ❌ Forced Cloud Account | ✅ Offline | ⚠️ Paid Features |
| Automatic Secret Redaction | ✅ Built-in [REDACTED] | ❌ Manual Masking | ❌ Plaintext in Logs | ⚠️ Basic |
Common Developer Inquiries
Facts about RouteCase architecture, privacy, compatibility, and licensing.
What file extensions does RouteCase support?Syntax & Schema
.rcase as its primary extension, and also fully recognizes .routecase and *.rcase.json files. When opened in VS Code, all files automatically activate the RouteCase language grammar, bundled JSON schema validation, hover tooltips, and real-time syntax checking.Does RouteCase require an account, login, or internet telemetry?Privacy & Offline
Authorization, apiKey, and session cookies are automatically masked with [REDACTED] in all log outputs.Can I test local development servers without starting a proxy?Local Testing
http://localhost:3000, http://127.0.0.1:8080, local Docker containers, private VPN environments, and public internet APIs. No separate background daemon or browser companion is required.How does variable chaining and token capture work?Workflow Automation
capture map to extract response JSON properties using dot notation (e.g. "authToken": "data.accessToken"). RouteCase persists these variables in memory during the execution run, enabling subsequent requests to reference them via template syntax: "Authorization": "Bearer {{authToken}}".Can I import existing OpenAPI 3.0 or Swagger 2.0 specifications?Migration
Ctrl+Shift+P (or Cmd+Shift+P on macOS), run RouteCase: Import from OpenAPI / Swagger, select your JSON spec, and RouteCase instantly transforms your operations, paths, parameters, and schemas into executable .rcase suites.How do I install RouteCase in Visual Studio Code?Installation
Ctrl+Shift+X (or Cmd+Shift+X), search for RouteCase, and click Install. Alternatively, install it directly from your command line with:code --install-extension UtkarshKumar.routecase