https://github.com/tangcent/easy-api
IntelliJ plugin that generates API documentation and runnable requests from Java/Kotlin code, with export to Postman, Markdown, cURL, and HTTP Client.
https://github.com/tangcent/easy-api
idea-plugin postman
Last synced: 21 days ago
JSON representation
IntelliJ plugin that generates API documentation and runnable requests from Java/Kotlin code, with export to Postman, Markdown, cURL, and HTTP Client.
- Host: GitHub
- URL: https://github.com/tangcent/easy-api
- Owner: tangcent
- License: agpl-3.0
- Created: 2019-03-30T03:39:50.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2026-05-07T14:31:02.000Z (26 days ago)
- Last Synced: 2026-05-07T16:38:44.499Z (26 days ago)
- Topics: idea-plugin, postman
- Language: Kotlin
- Homepage: https://easyapi-web.github.io/
- Size: 25.6 MB
- Stars: 226
- Watchers: 3
- Forks: 35
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# EasyApi
[](https://github.com/tangcent/easy-api/actions/workflows/ci.yml)
[](https://codecov.io/gh/tangcent/easy-api)
[](https://plugins.jetbrains.com/plugin/12211-easyapi)
[](https://plugins.jetbrains.com/plugin/12211-easyapi)
> **Note:** This is the v3.0 rewrite of EasyApi. For the source code of stable v2.x releases, see the [`stable/v2.x.x`](https://github.com/tangcent/easy-api/tree/stable/v2.x.x) branch.
An IntelliJ IDEA plugin for API development — export API documentation, send requests, and manage endpoints directly from your code.
## Features
### API Export
Export API endpoints from your source code to multiple formats:
| Format | HTTP | gRPC | Output |
|--------|:----:|:----:|--------|
| **Markdown** | ✓ | ✓ | `.md` documentation file |
| **Postman** | ✓ | — | JSON file or direct upload to Postman |
| **cURL** | ✓ | ✓ | Executable shell script |
| **HTTP Client** | ✓ | ✓ | IntelliJ HTTP Client scratch file |
### API Dashboard
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
### Send API Requests
Call any API endpoint directly from the editor:
- Right-click a controller method → **Call** (or press `Ctrl+C` on 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
### API Search Everywhere
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
### Gutter Icons
API methods are marked with a gutter icon in the editor. Click it to open the endpoint in the API Dashboard.
### Field Conversion
Convert class fields to various formats:
- **To JSON** — Standard JSON with default values
- **To JSON5** — JSON5 format with comments support
- **To Properties** — Java `.properties` format
## Supported Frameworks
| Category | Supported |
|----------|-----------|
| **Languages** | Java, Kotlin, Scala (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 / OpenAPI annotations |
| **Spring Actuator** | Actuator endpoints |
### Spring MVC
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
### Spring Cloud OpenFeign
Support for Feign client interfaces:
- `@FeignClient` interface detection
- Spring MVC annotations on interface methods
- Native Feign annotations: `@RequestLine`, `@Headers`, `@Body`, `@Param`
### JAX-RS
Full support for JAX-RS annotations:
- `@Path`, `@GET`, `@POST`, `@PUT`, `@DELETE`, `@PATCH`, `@HEAD`, `@OPTIONS`
- `@PathParam`, `@QueryParam`, `@FormParam`, `@HeaderParam`, `@CookieParam`, `@MatrixParam`
- `@Consumes`, `@Produces`
### gRPC
Support for gRPC service implementations:
- Service path extraction (`/./`)
- Streaming type detection (unary, server-streaming, client-streaming, bidirectional)
- Request/response protobuf message type resolution
- Server reflection support
- Stub class resolution
## How to Use
### Export APIs
1. Right-click on a controller file, class, or method in the editor or project view
2. Select **EasyApi → Export** (or press `Ctrl+E` on macOS / `Alt+Shift+E`)
3. Choose the target format (Postman / Markdown / cURL / HTTP Client)
4. The APIs will be exported automatically
### Call an API
1. Right-click on a controller method
2. Select **EasyApi → Call** (or press `Ctrl+C` on macOS / `Alt+Shift+C`)
3. The API Dashboard opens with the endpoint loaded
4. Edit parameters and send the request
### Open API Dashboard
- Go to **Tools → Open API Dashboard**
- Or click the **API Dashboard** tab at the bottom of the IDE
### Search APIs
- Press `Double Shift` to open Search Everywhere
- Switch to the **APIs** tab
- Type an HTTP method prefix (e.g., `GET /users`) or any keyword
### Convert Fields
1. Right-click on a class in the editor
2. Select **EasyApi → ToJson / ToJson5 / ToProperties**
## Development
### Prerequisites
- JDK 17 or higher
- IntelliJ IDEA 2025.2 or higher
### Build & Run
```bash
# Run an IDEA instance with the plugin installed
./gradlew runIde
# Run all tests
./gradlew clean test
```
### Compatibility
| JDK | IDE | Status |
|-----|-----|--------|
| 17 | 2025.2.1 | ✓ |
### Architecture
The plugin follows a layered architecture:
```mermaid
graph TB
IDE["IDE Integration Layer
(Actions, Dashboard, Line Markers, Search)"]
Export["Export Layer
(ExportOrchestrator → ClassExporter → ApiExporter)"]
Core["Core Services
(RuleEngine, ConfigReader, ApiIndex, HttpClient)"]
PSI["PSI Analysis
(TypeResolver, DocHelper, AnnotationHelper)"]
IDE --> Export
Export --> Core
Core --> PSI
```
- **ClassExporter** — Extracts `ApiEndpoint` models from PSI classes (Spring MVC, JAX-RS, Feign, gRPC)
- **ApiExporter** — Converts `ApiEndpoint` models to output formats (Markdown, Postman, 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
## Contributing
You can propose a feature request by opening an issue or a pull request.
Here is a list of contributors: