English | 中文
Note: This is the v3.0 rewrite of EasyYapi. For the source code of stable v2.x releases, see the
stable/v2.x.xbranch.
An IntelliJ IDEA plugin for API development — export API documentation to YApi/Postman/Markdown, send requests, and manage endpoints directly from your code.
Export API endpoints from your source code to multiple formats:
| Format | HTTP | gRPC | Output |
|---|---|---|---|
| YApi | ✓ | — | Upload to YApi platform with category management, mock rules, and update confirmation |
| Postman | ✓ | — | JSON file or direct upload to Postman workspace |
| Markdown | ✓ | ✓ | .md documentation file |
| cURL | ✓ | ✓ | Executable shell command |
| HTTP Client | ✓ | ✓ | IntelliJ HTTP Client scratch file |
A built-in tool window that provides a tree view of all API endpoints in your project:
- Browse endpoints organized by module and class
- Search and filter endpoints by path, name, or HTTP method
- View endpoint details (parameters, headers, body, response)
- Send HTTP requests directly from the dashboard
- Navigate to source code with a single click
- Edit request parameters with auto-persistence
Call any API endpoint directly from the editor:
- Right-click a controller method → Call (or press
Ctrl+Con macOS /Alt+Shift+C) - The API Dashboard opens and navigates to the selected endpoint
- Edit parameters, headers, and body before sending
- View response with syntax highlighting
Find API endpoints from anywhere in the IDE using IntelliJ's Search Everywhere (Double Shift):
- Search by HTTP method prefix (e.g.,
GET /users) - Search by path, endpoint name, class name, or description
- Click a result to navigate directly to the source method
API methods are marked with a gutter icon in the editor. Click it to open the endpoint in the API Dashboard.
Convert class fields to various formats:
- To JSON — Standard JSON with default values
- To JSON5 — JSON5 format with comments support
- To Properties — Java
.propertiesformat
| Category | Supported |
|---|---|
| Languages | Java, Kotlin, Scala (optional), Groovy (optional) |
| Web Frameworks | Spring MVC, Spring Cloud OpenFeign, JAX-RS (Quarkus / Jersey) |
| RPC | gRPC |
| Validation | javax.validation / Jakarta Validation |
| Serialization | Jackson, Gson |
| API Docs | Swagger 2 / OpenAPI 3 annotations |
| Spring Actuator | Actuator endpoints |
Full support for Spring MVC annotations:
@RequestMapping,@GetMapping,@PostMapping,@PutMapping,@DeleteMapping,@PatchMapping@RequestParam,@PathVariable,@RequestBody,@RequestHeader,@CookieValue@RestController,@Controller- Class-level and method-level mapping composition
- Generic type resolution for parameterized controllers
- Custom meta-annotation support
Support for Feign client interfaces:
@FeignClientinterface detection- Spring MVC annotations on interface methods
- Native Feign annotations:
@RequestLine,@Headers,@Body,@Param
Full support for JAX-RS annotations:
@Path,@GET,@POST,@PUT,@DELETE,@PATCH,@HEAD,@OPTIONS@PathParam,@QueryParam,@FormParam,@HeaderParam,@CookieParam,@MatrixParam@Consumes,@Produces
Support for gRPC service implementations:
- Service path extraction (
/<package>.<ServiceName>/<MethodName>) - Streaming type detection (unary, server-streaming, client-streaming, bidirectional)
- Request/response protobuf message type resolution
- Server reflection support
- Stub class resolution
- Right-click on a controller file, class, or method in the editor or project view
- Select EasyApi → Export (or press
Ctrl+Eon macOS /Alt+Shift+E) - Choose the target format (YApi / Postman / Markdown / cURL / HTTP Client)
- The APIs will be exported automatically
- Right-click on a controller method
- Select EasyApi → Call (or press
Ctrl+Con macOS /Alt+Shift+C) - The API Dashboard opens with the endpoint loaded
- Edit parameters and send the request
- Go to Tools → Open API Dashboard
- Or click the API Dashboard tab at the bottom of the IDE
- Press Double Shift to open Search Everywhere
- Switch to the APIs tab
- Type an HTTP method prefix (e.g.,
GET /users) or any keyword
- Right-click on a class in the editor
- Select EasyApi → ToJson / ToJson5 / ToProperties
EasyYapi uses a layered configuration system with multiple sources, processed in priority order:
| Priority | Source | Description |
|---|---|---|
| Highest | Runtime | Programmatic overrides set during execution |
| Local file | .easy.api.config in the project root |
|
| Extension | Plugin extension configs (Swagger, validation, etc.) | |
| Remote | Config files fetched from URLs | |
| Lowest | Built-in | Default bundled configuration |
Configuration supports:
- Property resolution — Reference other config values with
${key} - Directives — Control parsing behavior (
#resolve,#ignore, etc.) - Rule engine — Groovy scripts, regex, annotation expressions, tag expressions
- Remote configs — Load shared configs from URLs (e.g., Swagger, javax.validation presets)
- JDK 17 or higher
- IntelliJ IDEA 2025.2 or higher
# Run an IDEA instance with the plugin installed
./gradlew runIde
# Run all tests
./gradlew clean test
# Generate JaCoCo coverage report
./gradlew jacocoTestReport| JDK | IDE | Status |
|---|---|---|
| 17 | 2025.2.1 | ✓ |
The plugin follows a layered architecture:
graph TB
IDE["IDE Integration Layer<br/>(Actions, Dashboard, Line Markers, Search)"]
Export["Export Layer<br/>(ExportOrchestrator → ClassExporter → ApiExporter)"]
Core["Core Services<br/>(RuleEngine, ConfigReader, ApiIndex, HttpClient)"]
PSI["PSI Analysis<br/>(TypeResolver, DocHelper, AnnotationHelper)"]
IDE --> Export
Export --> Core
Core --> PSI
- ClassExporter — Extracts
ApiEndpointmodels from PSI classes (Spring MVC, JAX-RS, Feign, gRPC) - ApiExporter — Converts
ApiEndpointmodels to output formats (YApi, Postman, Markdown, cURL, HTTP Client) - ExportOrchestrator — Coordinates the full export pipeline from scanning to output
- ApiIndex — Caches discovered endpoints for fast search and dashboard access
- RuleEngine — Evaluates rule expressions to customize parsing behavior
- Guide — Overview and features
- Installation — Install from Marketplace or disk
- Usage — Export and call APIs
- Export to YApi — YApi export and settings
- Export to Postman — Postman export
- Export to Markdown — Markdown export and templates
- Call API — Send requests, API Dashboard, gRPC call
You can propose a feature request by opening an issue or a pull request. See CONTRIBUTING.md for detailed guidelines.
Here is a list of contributors: