111 lines
5.8 KiB
Markdown
111 lines
5.8 KiB
Markdown
![everestheader](https://user-images.githubusercontent.com/23148259/39124644-c886b47a-4719-11e8-953c-f079b3edb664.png)
|
|
|
|
Everest _(formerly RESTaurant)_ is an upcoming REST API testing client written in JavaFX.
|
|
|
|
![home](https://user-images.githubusercontent.com/23148259/45769743-23e5a380-bc5e-11e8-9e45-5ea50342c19f.PNG)
|
|
_Everest running on Windows 10._
|
|
# Why Everest?
|
|
- Everest is written in Java. Thus, it is significantly **lighter on resources and more responsive** than its Electron-based alternatives like _Postman_. It aims to provide the same level of functionality in a lighter, native but equally slick package.
|
|
- Aesthetic is very important. With a **gorgeous, flat design**, Everest is a pleasure to look at and to work with. It is also entirely theme-_able_.
|
|
|
|
> I want you to want to use it!
|
|
|
|
- Being a Java application, Everest is inherently **cross-platform**. It will run anywhere there's a JVM.
|
|
- Everest will offer cloud synchronization of your projects powered by [Summit](https://github.com/RohitAwate/Summit). It will be available as a cloud service early next year or you may also choose to self-host it.
|
|
|
|
# Live Features 🔥
|
|
|
|
#### All of the most common requests
|
|
GET, POST, PUT, DELETE and PATCH requests. HEAD and OPTIONS coming soon.
|
|
|
|
#### Comprehensive Request Builder
|
|
- Add request headers.
|
|
- Append query parameters. _(with live preview)_
|
|
- **Syntax highlighting** for JSON and XML, powered by [RichTextFX](https://github.com/FXMisc/RichTextFX).
|
|
- Quickly add key-value pairs for URL-encoded and multipart-form bodies.
|
|
|
|
#### View Response Details
|
|
- HTTP status code, content type, elapsed time, body size.
|
|
- **Visualizer** to view JSON responses graphically. _(Aesthetic improvements coming with Alpha 1.4)_
|
|
- View response headers.
|
|
|
|
![get](https://user-images.githubusercontent.com/23148259/45769777-3c55be00-bc5e-11e8-9fbc-c8bf93b7dc5d.gif)
|
|
_Making a GET request with Everest._
|
|
|
|
#### API Authentication
|
|
- Basic Auth
|
|
- Digest Auth
|
|
|
|
#### Custom Themes
|
|
Everest is entirely theme-_able_ via CSS. For more details, refer [this guide](THEMES.md).
|
|
|
|
#### Efficient multi-tabbing
|
|
Everest utilizes a technique called _pseudo tab-switching_ to maintain a low memory footprint even when heavy multi-tabbing. I have written a highly technical piece about this on my [dev.to](https://dev.to/rohit).
|
|
|
|
_**Bonus**: The '+' button for adding new tabs is finally live!_
|
|
|
|
#### History
|
|
Everest maintains the history of all the requests made by you. You can search with any of the request's components: the target, the headers, the method, the body or even the files added to the request. Everest will **intelligently rank** the results based on their relevance.
|
|
|
|
![history](https://user-images.githubusercontent.com/23148259/45769890-8a6ac180-bc5e-11e8-8f5e-6704eb0e9aa1.gif)
|
|
|
|
_Everest's search feature in action._
|
|
|
|
# Upcoming features ⏳
|
|
#### OAuth Support
|
|
Everest will fully support both of the OAuth standards. Work on **OAuth 2.0 is in progress** right now and will be available with Alpha 1.4. OAuth 1.0 will follow next.
|
|
|
|
#### Everest Project
|
|
- This will be Everest's equivalent of Postman's Collection or Insomnia's Workspace.
|
|
- Will house **named-requests**.
|
|
- Will support **environment variables**. Every request can have its own.
|
|
- Can be exported/imported.
|
|
|
|
#### Summit
|
|
![summitheader](https://user-images.githubusercontent.com/23148259/45769968-cbfb6c80-bc5e-11e8-95c7-7d418dee54d5.png)
|
|
- [Summit](https://github.com/RohitAwate/Summit) is the synchronization server for Everest.
|
|
- It will allow for synchronization of your Everest Projects across multiple devices and other members of your team.
|
|
- It will use a Node.js-_powered_ RESTful API and Socket.IO.
|
|
- It will be available early next year as a service. You may also choose to self-host Summit.
|
|
|
|
#### Extension API
|
|
This will allow developers to create extensions for Everest which can for example, sync to Google Drive, or visualize the response bodies in a certain fashion or summon Batman.
|
|
|
|
#### Mock Server
|
|
This local server can be used to quickly create a mock REST-_ful_ service with the endpoints of your choice, producing the output of your choice.
|
|
|
|
# Keymap ⌨️
|
|
| Shortcut | Task |
|
|
|--------------|--------------------------|
|
|
| Ctrl + T | New Tab |
|
|
| Ctrl + W | Close tab |
|
|
| Ctrl + H | Toggle History |
|
|
| Ctrl + Enter | Send request |
|
|
| Ctrl + L | Focus address bar |
|
|
| Ctrl + M | Select HTTP method |
|
|
| Ctrl + F | Focus history search bar |
|
|
| Alt + P | Focus Query Params tab |
|
|
| Alt + A | Focus Authentication tab |
|
|
| Alt + H | Focus Headers tab |
|
|
| Alt + B | Focus Body tab |
|
|
|
|
# Releases 🚀
|
|
Everest is under active development and you can get the latest alpha build from [Releases](https://github.com/RohitAwate/Everest/releases). Make sure you read the release notes to understand what works and what doesn't, how to report issues and how to run the binary.
|
|
|
|
# Building from source 🔨
|
|
Everest uses Maven, so building from the source code is very simple. You need to have a minimum of JDK 8 (9 should also work) installed, along with Maven and Git. If you're using OpenJDK, you will need to install OpenJFX separately. Once you have everything set up, follow these simple steps:
|
|
1. Clone the repository: `git clone https://github.com/RohitAwate/Everest.git`
|
|
2. Enter the repository: `cd Everest`
|
|
3. Build a binary: `mvn package`
|
|
4. Run the binary: `mvn exec:java`
|
|
|
|
**For JDK 10 and above:** JavaFX has been decoupled from the JDK and will need to be installed separately.
|
|
|
|
# License ⚖️
|
|
Everest is licensed under the [Apache 2.0 License](LICENSE).
|
|
|
|
# Suggestions and improvements
|
|
Use these options to reach me:
|
|
- Open a GitHub issue.
|
|
- Email me at rohitawate121@gmail.com.
|
|
- Tweet me [@TheRohitAwate](https://twitter.com/TheRohitAwate).
|