An Open source API development application. Send out requests, test your API endpoints and quickly receive the responses you want without the bloat.
The application currently supports different methods such as:
- HTTP
- GraphQL
- WebSocket
- Server-Sent Events
- gRPC
Work In Progress 🚧:
- WebHook
⭐ Minimalistic: Avoid the bloat that comes with Postman
💨 Real-Time: Send and Receive messages without delay
📚 DataBase: Automatically save and organize your requests/responses with the Folders System
🌙 Color Theme: Select the theme that best suits you
✏️ Tests : Test your HTTP calls with assertions
🔥HTTP
GET
- Requests a representation of the specified resourcePOST
- Sends data to the serverPUT
- Creates a new resource or replaces a representation of the target resource with the request payloadPATCH
- Applies partial modifications to a resourceDELETE
- Deletes the specified resource.
🕸️GraphQL
RestStop supports all root operation types of GraphQL
QUERY
- Request data from server, similar toGET
MUTATION
- Modify server-side data. An all-in-onePOST
,PUT
,PATCH
, andDELETE
SUBSCRIPTION
- Utilize WebSockets to maintain active listening connection to Server
🔌WebSocket
Connect and Establish Bi-Directional communcation channels with WebSocket Servers.
📩Server-Sent Events
Establish an HTTP connection to receive automatic updates from a server
🔛gRPC
RestStop supports all four kinds of service method. Upload a proto file to perform Remote Procedure Calls.
Unary
- Sends a request and gets a responseClient Stream
- Write a sequence of messages to the server and receive a response from the serverServer Stream
- Sends a request to the server and receive a sequence of messages backBidirectional Stream
- Server and Client both exchange messages to one another
This Folder comes with a RestStop Application Executable packaged for Windows at the root folder. If you are running Windows, you may choose to open the app through this executable. Otherwise, you can build the app tailored to your operating system.
- Clone the repo
git clone https://github.com/holliskuang/RestStop.git
- Install NPM packages
npm install
- Test and Start the App locally
npm start
- If you are interested in turning the app into an executable, you can utilize electron-builder to package the app
npm run packager
RestStop is split into Three Different Components: 1. Collections 2. Request 3. Response
Collections consists of a Folder Panel and a History Panel.
- Folders contain the history of your previous requests and their respective responses
- You can create, clear, and delete folders
- When you submit a request, the request and response will be saved to your current folder
- You can remove specific request/response blocks from your folder as well as see its recorded response
- History contains an absolute record of all previous requests/responses that you have created
- These records also contain the timestamp at which the request was made
The Request component will differ depending on the endpoint being served.
An HTTP Request will contain:
- Method Selector
- URL
- Headers
- Test Suite
- Request Body(If method is not GET)
A GraphQL Request will contain:
- Root Type Selector
- URL
- Headers
- Variables
- Test Suite
A WebSocket Request will contain a:
- URL
A Server-Sent Event Request will contain:
- URL
- Headers
A gRPC Request will contain:
- URL
- Proto File Uploader
- Service Method Selector
- Service Definition Display
HTTP and GraphQL methods utilize a response component which records the Response Body, Response Headers, Response Cookies, and Test Results where applicable.
WebSocket, Server-Sent Events, and gRPC utilize a chat-log display to visualize the messages sent to and from the server.
- Messages are Timestamped
- Messages from the Server will de displayed on the left side of the chat-log
- Messages from the Client will be displayed on the right side of the chat-log
- When a method allows for the Client to message the Server, a chat box with appear which will allow you to send messages
- When a method allows for Client Streaming, an 'End Stream' button will appear, which will allow the server to know when you have finished streaming your message
- Light Mode
- Nav Bar
- HTTP
- GraphQL
- Chat-Log Response Component
- WebSocket
- Server-Sent Events
- gRPC
- WebHook
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Hollis Kuang - [email protected]
Project Link: https://github.com/holliskuang/RestStop
Use this space to list resources you find helpful and would like to give credit to. I've included a few of my favorites to kick things off!