Spring API Tester
A VS Code extension that scans your workspace for Spring Boot REST controllers and lets you test endpoints directly in HTTP Forge — with pre-populated method, URL, path/query parameters, headers, and request body.
Features
- Automatic endpoint discovery — detects
@RestController / @Controller classes and their @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping, @RequestMapping methods.
- Multi-app support — detects multiple Spring Boot projects (via
pom.xml / build.gradle) and groups controllers in a 3-level tree: App → Controller → Endpoint.
- Additional paths — configure
springApiTester.additionalPaths to scan external Spring Boot repositories beyond the current workspace.
- Context-path & port resolution — reads
server.servlet.context-path and server.port from application.properties / application.yml and applies them to endpoint URLs.
- Smart request body generation — builds JSON example bodies from Java source using AST parsing (java-parser) with regex fallback:
- Jackson visibility rules (public fields, getters,
@JsonProperty, @JsonIgnore)
- Lombok support (
@Data, @Getter, @Value, @Setter)
@Schema(example), @ApiModelProperty, @ApiParam example extraction
- Date/time annotations (
@JsonFormat, @DateTimeFormat, @Temporal)
- Bean Validation constraints (
@Email, @Min, @Max, @Pattern, @Size, etc.)
- Nested/recursive types with cycle detection
- Multipart & form support —
@RequestPart, MultipartFile, and @ModelAttribute generate the correct content type.
- GraphQL detection — recognises GraphQL endpoints and generates the appropriate body format.
- Inline actions — each endpoint shows Test (beaker) and Go to Source (file) buttons directly in the tree view.
- Live refresh — file watchers re-parse on save and detect
application.properties / application.yml changes automatically.
Configuration
| Setting |
Type |
Default |
Description |
springApiTester.additionalPaths |
string[] |
[] |
Absolute paths to external Spring Boot repositories to scan. The current workspace is always scanned. |
Example
// .vscode/settings.json
{
"springApiTester.additionalPaths": [
"/home/user/projects/order-service",
"/home/user/projects/user-service"
]
}
Commands
| Command |
Description |
Spring API Tester: List Endpoints |
Quick pick of all discovered endpoints — opens in HTTP Forge |
Spring API Tester: Generate API Spec |
Generates a basic api.yml specification |
Spring API Tester: Show API Panel |
Opens the webview API panel |
Requirements
- HTTP Forge extension (
henry-huang.http-forge) — installed automatically as a dependency.
- Java source files must be in the workspace (or in configured
additionalPaths).
Development
cd spring-api-tester
npm install
npm run watch
# launch Extension Development Host
code --extensionDevelopmentPath=$(pwd) .
Architecture
- models —
Endpoint, Controller, SpringApp interfaces.
- services —
EndpointParser (AST + regex dual parsing), BodyGenerator, SpringAppResolver (project detection & metadata), ForgeService (HTTP Forge integration), FileWatcher, CommandRegistrar, ApiTreeProvider.
- extension.ts — activation, dependency wiring, initial scan.
| |