Skip to content

Pixeldweller/APIricot-intellij-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

APIricot

An IntelliJ IDEA plugin that acts as an HTTP reverse proxy between your frontend and your Spring Boot backend. Point your frontend at the proxy port, keep your backend where it is, and inspect every request without changing a line of application code.

Version: 0.1-alpha β€” targeting IntelliJ IDEA 2025.3+

Features

Feature Description
HTTP Proxy Transparent reverse proxy. Configure listen port and target host/port directly in the tool window.
Traffic Table Live table of captured exchanges β€” method, path, status, duration, size, timestamp. Sortable columns, filter bar.
Request / Response Inspection Full headers and pretty-printed body for every exchange.
Response Body Search Search bar with match counter and ↑↓ navigation inside response bodies.
Pinned Requests Right-click β†’ Pin to protect an exchange from being cleared. Pinned rows are highlighted in amber.
Request Replay Edit method, URL, headers, and body, then re-send. Replayed exchanges appear separately in the table.
Payload Diff Double-click a POST/PUT request to navigate to the Spring controller method. If the JSON body doesn't match the @RequestBody DTO (missing fields, extra fields, type mismatches), a diff dialog is shown automatically.
Endpoint Overview "Endpoints" tab β€” scan the project for all @RestController/@Controller methods, browse by method/path/handler, filter by path, double-click to navigate. Call counts and last status update live from captured traffic.
HAR Export / Import Save all captured traffic as a HAR 1.2 file. Import HAR files to replay or inspect recorded traffic.
Copy as cURL One-click copy of the selected request as a curl command.
Generate MockMvc Test Right-click any exchange β†’ generate a ready-to-paste @Test method using MockMvcRequestBuilders.
Persistent Settings Proxy port, target host, and target port are persisted per project in .idea/apiricot.xml.

Quick Start

  1. Install the plugin (.zip from Releases or via Settings β†’ Plugins β†’ Install from Disk).
  2. Open your Spring Boot project.
  3. Open the APIricot tool window (bottom bar).
  4. Set the proxy port (default 8090) and the target (default localhost:8080).
  5. Click β–Ά Start.
  6. Point your frontend at http://localhost:8090 instead of http://localhost:8080.
  7. Requests appear in the Traffic table in real time.

CORS

If your frontend runs on a different origin from the proxy, add the proxy origin to your Spring Boot CORS config:

@Bean
public CorsFilter corsFilter() {
    var config = new CorsConfiguration();
    config.addAllowedOrigin("http://localhost:8090"); // proxy port
    config.addAllowedMethod("*");
    config.addAllowedHeader("*");
    var source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", config);
    return new CorsFilter(source);
}

Architecture

  • Inbound: com.sun.net.httpserver.HttpServer (JDK built-in)
  • Outbound: java.net.http.HttpClient
  • Concurrency: Java 21 virtual threads β€” no external networking dependencies
  • JSON: Gson (bundled with IntelliJ Platform)
  • PSI: JavaAnnotationIndex for controller/endpoint discovery

Building from Source

./gradlew buildPlugin
# Output: build/distributions/APIricot-0.1-alpha.zip

Run in a sandboxed IDE:

./gradlew runIde

About

πŸ‘ APIricot – IntelliJ HTTP Reverse Proxy An IntelliJ IDEA plugin that acts as a transparent HTTP reverse proxy between your frontend and [Spring Boot] backend. Point your frontend at the proxy, leave your backend untouched, and inspect every request / highlight / compare request params for adressed endpoints in code β€” no code changes required.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages