-
Notifications
You must be signed in to change notification settings - Fork 1
Features
Peter Thomas edited this page May 13, 2025
·
45 revisions
Note
If you would like to comment or add more to this list, please use the issue tracker. Also see the User Guide.
Capability | Implemented | Comment |
---|---|---|
Local First | ✅ | The application runs locally - which means that all your data is secure, you can test APIs that run on localhost or within your network, and you won't be blocked by CORS restrictions. |
API Chaining | ✅ | Any number of APIs can be called in a "sequence". Unlike other tools, you can view the whole sequence on one page. You can save variables and chain response data into the next request. Header manipulation (e.g. for auth) can be done using JS functions |
Environment Switching | ✅ | You will be able to define variables that are different for different environments, for e.g. "staging", "e2e" etc. This is useful to manage URLs and secrets |
De-coupled Secrets | For security reasons, environment variables that contain sensitive values or secrets should be de-coupled from the main Xplorer project file. This avoids secrets leaking into version control or GitHub and also allows teams to safely share Xplorer files. Another need for this de-coupling is so that multiple Xplorer files within a project folder can re-use the same environment variables set-up. | |
JSON Support | ✅ | JSON support is built-in natively. You can create JSON variables directly or by extracting parts of the response |
Before / After Scripts | ✅ | You can run JavaScript expressions before and after each HTTP call. This is useful to save variables and data needed for subsequent calls. JavaScript is ideal for extracting data from JSON responses and manipulating requests. |
Team Collaboration | ✅ | Each sequence or API "flow" is saved to the file-system. You will be able to save the folder structure in Git or any backup system of your choice. The data is plain-text and Git can be used to collaborate and share API calling data with a wide, distributed team. While you may not have the best "diff" experience because of the JSON format, this is sufficient for team collaboration. |
Folder Structure | ✅ | Teams typically like to manage API flows under a tree structure that maps to the business-domain or API end-point / paths. Xplorer will support a local-first approach, where artifacts are on the local-file system, and a directory structure is the source of truth |
Built in Auth | The existing scripting support is more than capable, but support for common schemes such as OAuth and JWT would be good to have | |
File Upload / Multipart | Ability to reference local files or create data on-the-fly for upload use-cases | |
Looping | Simple looping over JSON arrays that have come from previous responses or scripting. | |
Advanced Scripting | Utilities to read and write from files (e.g. CSV), needed for making data-driven API requests and saving results | |
XML Support | Support for XML syntax coloring and XPath expressions for scripting and assertions. Some teams have expressed interest in using Xplorer for legacy SOAP and XML end points. If you need this expedited, open an issue or reach out directly. | |
GraphQL Support | Support for GraphQL query syntax coloring and schema exploring similar to OpenAPI support would be good to have | |
Testing | You will be able to write simple and complex assertions powered by Karate's powerful match operator. While Karate Xplorer is focused on exploring and visualizing API flows, it is a great starting point to learn test-automation. You will be also able to export an Xplorer flow into a working Karate test |
Capability | Implemented | Comment |
---|---|---|
Re-use URL Base | ✅ | You have the option to set the common URL base as a global variable, which means that steps just need to specify the path. This aligns to REST standards, reduces the effort needed to make a call and encourages API chaining. You can always over-ride the URL per-step |
Label API calls | ✅ | Each call in a sequence can be given a friendly name that is clearly visible in the UI. This is very useful for helping others in your team understand the business context of your API sequence |
Input Switching | ✅ | When you need to keep switching between some values for request data, and switching environments is too "heavy weight", you can do this by introducing a Variable . Keep the right pane open and you can re-run requests quickly after changing it |
Request and Response side-by-side | ✅ | Other tools show you only the response-body and response-headers, but it is important to see the actual request made also. Karate Xplorer is designed to show you both, side-by-side. This also has the benefit of serving as API documentation |
Mask Secrets | ✅ | Any variables marked as "secret" should be masked in the UI and even in the HTTP requests and responses shown on screen or rendered in any report or log |
Custom Doc / Visualization | ✅ | For some complex APIs it makes sense to re-format the JSON into a user-friendly view, for example by removing un-necessary data and formatting the core data into an HTML table. This is a great way to add rich documentation to the API sequence. This documentation is dynamic and can refer to variables or requests and responses |
Readable Flows | ✅ | Unlike other tools, the Karate Xplorer UI is designed so that you can see all calls within your sequence at the same time. You can expand or collapse each row for convenience. What this means is that your sequences are much more readable and presentable to non-technical stakeholders |
Assertion Builder | A no-code option to build assertions from a real response | |
View all Environments | ✅ | If you have multiple environments, you will be able to see all environments in one grid view. This is very convenient for eyeballing the differences between your environments in one-shot |
Simpler Scripting | ✅ | The concept of sequence variables is "built-in", and most chaining needs are achieved either by directly referring to the previous response or by setting a named variable that will be used by the next request. Most of the time, you don't need to write raw JavaScript |
Drag and Drop Scripting | Allow business users to create chained sequences and payload assertions by drag-and drop. | |
Re-use JSON | ✅ | You can save JSON as a variable and re-use it in subsequent calls |
Modify JSON | ✅ | At any time you can mutate a JSON using JS to make it ready for subsequent calls and create complex and dynamic sequences that way |
Business Friendly | ✅ | Karate Xplorer shows JSON responses in a human-friendly format (unique to Xplorer) that is ideal for demoing API calls to non-technical stakeholders. API product owners will be able to demo APIs to the business or end-users and customers. You also have the option to view the "raw" JSON |
JSON text search | ✅ | CTRL+F or bringing up the search bar within a JSON grid allows you to search, highlight and zoom-in on parts of the payload you are interested in |
JSON path search | Allow user to type in JSON-path expressions and filter / highlight results in the JSON grid | |
Save Preferences | Local preferences should be save-able and should persist across upgrades and re-installs of the application. A high priority requirement is to show "Recent Files" | |
File Associations | As a native desktop application, it should open compatible files directly when a user double-clicks on them | |
Drag and Drop | The user should be able to drag and drop files to open or import |
Capability | Implemented | Comment |
---|---|---|
MCP Server | ✅ | The user can connect any LLM that supports the Model Context Protocol standard, and use natural language to work with all Xplorer capabilities |
MCP Host | We plan to embed the chat-box within Xplorer so you don't have to leave the app. We will also be able to deliver a UX relevant to the task at hand, and embed details about the JSON, HTTP request or render HTML reports where needed. |
Capability | Implemented | Comment |
---|---|---|
Postman Import | ✅ | Even large nested collections are supported and you can choose which calls to bring in to Xplorer |
Postman Script (Tests) Import | ✅ | Depending on the complexity of JavaScript used, this may not be 100%. Most of the frequently used Postman assertions are handled. We can work with you to improve this support, contact us. |
Postman Environments Import | Teams have asked for a way to make it easier to import Postman enviroments, so as to reduce the number of steps needs to import and then be able to run in Xplorer | |
OpenAPI Import | ✅ | Details |
Swagger Import | ✅ | Details |
OpenAPI / Swagger Impact Analysis | Be able to compare two different specification files (or versions) and show the differences visually | |
cURL Import | ✅ | |
HAR Import | ✅ | |
Export cURL | ✅ | You may want to share API call data to developers and for other tools |
Export Karate Test | ✅ | When you want to turn your sequences into formal test-automation that can run in parallel and in CI / CD, you have the option to export your Xplorer scripts into Karate *.feature files. This is how you can scale from exploratory-testing to full-fledged test-automation. |
Export HTML | You will be able to export a sequence execution as plain HTML. The entire runtime of the session including your custom documentation, requests and responses can be saved and shared with project stakeholders | |
Record API Calls | Xplorer will be able to launch a Chrome browser instance and listen to all HTTP traffic. This can be used (assisted by AI) to generate and refine API flows |
Capability | Implemented | Comment |
---|---|---|
Local Install | ✅ | You install and run the application locally. No data needs to be saved in the cloud or outside your firewall. A local install is needed to be able to test APIs running on localhost or within your private network. |
Simple Install | ✅ | Cross-platform (Windows, Mac, Linux). Business-users who are not comfortable with an IDE can easily use it |
Native Installer | ✅ | If you require a Linux version, let us know |
Update Mechanism | Automatic detection, download of updates is planned in a future release (subscription only). |
Capability | Implemented | Comment |
---|---|---|
Extend via Java | The JS scripting support already allows for logic-reuse, but teams would like to make calls to databases or even cloud services. This will be possible by adding Java libraries to the classpath when Xplorer starts | |
Async Protocols | Support websockets, webhooks, gRPC, Kafka. Users can optionally switch on these capabilities by adding Java JAR files to the classpath. Xplorer will include capabilities to listen for async messages (on separate threads if needed) and visually presenting the results. The user will be able to script message handling logic and specify JSON conversion rules if needed |