Skip to content

An Open source API development application. Send out requests, test your API endpoints and quickly receive the responses you want without the bloat.

License

Notifications You must be signed in to change notification settings

holliskuang/RestStop

Repository files navigation

RestStop


About The Project

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

Features

⭐ 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

Supported Methods

🔥HTTP

  • GET - Requests a representation of the specified resource
  • POST - Sends data to the server
  • PUT - Creates a new resource or replaces a representation of the target resource with the request payload
  • PATCH - Applies partial modifications to a resource
  • DELETE - Deletes the specified resource.

🕸️GraphQL

RestStop supports all root operation types of GraphQL

  • QUERY - Request data from server, similar to GET
  • MUTATION - Modify server-side data. An all-in-one POST,PUT, PATCH, and DELETE
  • 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 response
  • Client Stream - Write a sequence of messages to the server and receive a response from the server
  • Server Stream - Sends a request to the server and receive a sequence of messages back
  • Bidirectional Stream - Server and Client both exchange messages to one another

Built With

  • Electron
  • TypeScript
  • React
  • Redux
  • MUI
  • Chai.js
  • Apollo-GraphQL

Getting Started

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.

  1. Clone the repo
    git clone https://github.com/holliskuang/RestStop.git
  2. Install NPM packages
    npm install
  3. Test and Start the App locally
npm start
  1. If you are interested in turning the app into an executable, you can utilize electron-builder to package the app
npm run packager

Basic Documentation

RestStop is split into Three Different Components: 1. Collections 2. Request 3. Response

Collections

Collections consists of a Folder Panel and a History Panel.

Folder

  • 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>

  • 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

Request

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

Response

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

Roadmap

  • 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).

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

Hollis Kuang - [email protected]

Project Link: https://github.com/holliskuang/RestStop

Acknowledgments

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!

About

An Open source API development application. Send out requests, test your API endpoints and quickly receive the responses you want without the bloat.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published