Giter Club home page Giter Club logo

docs's Introduction

Hoppscotch

Hoppscotch

Open Source API Development Ecosystem

contributions welcome Website Tests Tweet

Built with โค๏ธŽ by contributors


Hoppscotch

We highly recommend you take a look at the Hoppscotch Documentation to learn more about the app.

Support

Chat on Discord Chat on Telegram Discuss on GitHub

Features

โค๏ธ Lightweight: Crafted with minimalistic UI design.

โšก๏ธ Fast: Send requests and get responses in real time.

๐Ÿ—„๏ธ HTTP Methods: Request methods define the type of action you are requesting to be performed.

  • GET - Requests retrieve resource information
  • POST - The server creates a new entry in a database
  • PUT - Updates an existing resource
  • PATCH - Very similar to PUT but makes a partial update on a resource
  • DELETE - Deletes resource or related component
  • HEAD - Retrieve response headers identical to those of a GET request, but without the response body.
  • CONNECT - Establishes a tunnel to the server identified by the target resource
  • OPTIONS - Describe the communication options for the target resource
  • TRACE - Performs a message loop-back test along the path to the target resource
  • <custom> - Some APIs use custom request methods such as LIST. Type in your custom methods.

๐ŸŒˆ Theming: Customizable combinations for background, foreground, and accent colors โ€” customize now.

  • Choose a theme: System preference, Light, Dark, and Black
  • Choose accent colors: Green, Teal, Blue, Indigo, Purple, Yellow, Orange, Red, and Pink
  • Distraction-free Zen mode

Customized themes are synced with your cloud/local session.

๐Ÿ”ฅ PWA: Install as a Progressive Web App on your device.

  • Instant loading with Service Workers
  • Offline support
  • Low RAM/memory and CPU usage
  • Add to Home Screen
  • Desktop PWA

๐Ÿš€ Request: Retrieve response from endpoint instantly.

  1. Choose method
  2. Enter URL
  3. Send
  • Copy/share public "Share URL"
  • Generate/copy request code snippets for 10+ languages and frameworks
  • Import cURL
  • Label requests

๐Ÿ”Œ WebSocket: Establish full-duplex communication channels over a single TCP connection.

๐Ÿ“ก Server-Sent Events: Receive a stream of updates from a server over an HTTP connection without resorting to polling.

๐ŸŒฉ Socket.IO: Send and Receive data with the SocketIO server.

๐ŸฆŸ MQTT: Subscribe and Publish to topics of an MQTT Broker.

๐Ÿ”ฎ GraphQL: GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.

  • Set endpoint and get schema
  • Multi-column docs
  • Set custom request headers
  • Query schema
  • Get query response

๐Ÿ” Authorization: Allows to identify the end-user.

  • None
  • Basic
  • Bearer Token
  • OAuth 2.0
  • OIDC Access Token/PKCE

๐Ÿ“ข Headers: Describes the format the body of your request is being sent in.

๐Ÿ“ซ Parameters: Use request parameters to set varying parts in simulated requests.

๐Ÿ“ƒ Request Body: Used to send and receive data via the REST API.

  • Set Content Type
  • FormData, JSON, and many more
  • Toggle between key-value and RAW input parameter list

๐Ÿ“ฎ Response: Contains the status line, headers, and the message/response body.

  • Copy the response to the clipboard
  • Download the response as a file
  • View response headers
  • View raw and preview HTML, image, JSON, and XML responses

โฐ History: Request entries are synced with your cloud/local session storage.

๐Ÿ“ Collections: Keep your API requests organized with collections and folders. Reuse them with a single click.

  • Unlimited collections, folders, and requests
  • Nested folders
  • Export and import as a file or GitHub gist

Collections are synced with your cloud/local session storage.

๐Ÿ“œ Pre-Request Scripts: Snippets of code associated with a request that is executed before the request is sent.

  • Set environment variables
  • Include timestamp in the request headers
  • Send a random alphanumeric string in the URL parameters
  • Any JavaScript functions

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Teams: Helps you collaborate across your teams to design, develop, and test APIs faster.

  • Create unlimited teams
  • Create unlimited shared collections
  • Create unlimited team members
  • Role-based access control
  • Cloud sync
  • Multiple devices

๐Ÿ‘ฅ Workspaces: Organize your personal and team collections environments into workspaces. Easily switch between workspaces to manage multiple projects.

  • Create unlimited workspaces
  • Switch between personal and team workspaces

โŒจ๏ธ Keyboard Shortcuts: Optimized for efficiency.

Read our documentation on Keyboard Shortcuts

๐ŸŒ Proxy: Enable Proxy Mode from Settings to access blocked APIs.

  • Hide your IP address
  • Fixes CORS (Cross-Origin Resource Sharing) issues
  • Access APIs served in non-HTTPS (http://) endpoints
  • Use your Proxy URL

Official proxy server is hosted by Hoppscotch - GitHub - Privacy Policy.

๐ŸŒŽ i18n: Experience the app in your language.

Help us to translate Hoppscotch. Please read TRANSLATIONS for details on our CODE OF CONDUCT and the process for submitting pull requests to us.

โ˜๏ธ Auth + Sync: Sign in and sync your data in real-time across all your devices.

Sign in with:

  • GitHub
  • Google
  • Microsoft
  • Email
  • SSO (Single Sign-On)1

๐Ÿ”„ Synchronize your data: Handoff to continue tasks on your other devices.

  • Workspaces
  • History
  • Collections
  • Environments
  • Settings

โœ… Post-Request Tests: Write tests associated with a request that is executed after the request's response.

  • Check the status code as an integer
  • Filter response headers
  • Parse the response data
  • Set environment variables
  • Write JavaScript code

๐ŸŒฑ Environments: Environment variables allow you to store and reuse values in your requests and scripts.

  • Unlimited environments and variables
  • Initialize through the pre-request script
  • Export as / import from GitHub gist
Use-cases
  • By storing a value in a variable, you can reference it throughout your request section
  • If you need to update the value, you only have to change it in one place
  • Using variables increases your ability to work efficiently and minimizes the likelihood of error

๐Ÿšš Bulk Edit: Edit key-value pairs in bulk.

  • Entries are separated by newline
  • Keys and values are separated by :
  • Prepend # to any row you want to add but keep disabled

๐ŸŽ›๏ธ Admin dashboard: Manage your team and invite members.

  • Insights
  • Manage users
  • Manage teams

๐Ÿ“ฆ Add-ons: Official add-ons for hoppscotch.

Add-ons are developed and maintained under Hoppscotch Organization.

For a complete list of features, please read our documentation.

Demo

hoppscotch.io

Usage

  1. Provide your API endpoint in the URL field
  2. Click "Send" to simulate the request
  3. View the response

Developing

Follow our self-hosting documentation to get started with the development environment.

Contributing

Please contribute using GitHub Flow. Create a branch, add commits, and open a pull request.

Please read CONTRIBUTING for details on our CODE OF CONDUCT, and the process for submitting pull requests to us.

Continuous Integration

We use GitHub Actions for continuous integration. Check out our build workflows.

Changelog

See the CHANGELOG file for details.

Authors

This project owes its existence to the collective efforts of all those who contribute โ€” contribute now.

License

This project is licensed under the MIT License โ€” see the LICENSE file for details.

Footnotes

  1. Enterprise edition feature. Learn more. โ†ฉ

docs's People

Contributors

airdrummingfool avatar aitchnyu avatar amoldericksoans avatar andrewbastin avatar babyjohndev avatar balub avatar daniel-r-afonso avatar dependabot[bot] avatar gauravmak avatar gc-shisir avatar ibromz avatar jamesgeorge007 avatar jopijuco avatar krmh04 avatar liyasthomas avatar nuxt-studio[bot] avatar rahuldimri avatar rhullah avatar sachinsmc avatar samsonmobisa avatar sanskritiharmukh avatar sukriti-sood avatar surfmuggle avatar thetronjohnson avatar tinhochu avatar tkhadimullin avatar varghesejose2020 avatar vinicioslc avatar vivienbcr avatar wcrum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

docs's Issues

Spelling Mistake in docs.

  • First sentence in the https://docs.hoppscotch.io/features/authorization - "REST_ APIs use authorizatiom to ensure that a client has secure access only to the resources permitted by their roles. "
  • authorizatiom is in wrong spelling.

Missing Link on /docs/content/en/features/response.md

Last line on the page /docs/content/en/features/response.md says The response from the API endpoint can be viewed here

  • ๐Ÿ”— Either we need to add a link to here and associate sample data to that
  • โŒ Or remove the reference here

Throws 404 code when visiting any route directly

Description

When browsing the docs website a 404 error is returned if the entry point is anything apart from https://docs.hoppscotch.io/.

Scenario A:

  1. Visit https://docs.hoppscotch.io/, browser loads the page.
  2. Get code 200.
  3. Click GraphQL (or anything else), Nuxt changes the route and renders the page.
  4. Code is still 200.

Scenario B:

  1. Visit https://docs.hoppscotch.io/graphql (or any other direct route), browser loads the page.
  2. Get code 404.
  3. Click Introduction (or anything else), Nuxt changes the route and renders the page.
  4. Code is still 404.

Impact

โš ๏ธ This will be hurting docs SEO quite badly, making it more difficult for people to find info on the project.

Cause

Here are some relevant results.

Docs need clarity on how to store payload values as Environment Variables

Is there an existing issue for this?

  • I have searched the existing issues

Current behavior

As called out in a few issues, it is a common pattern to take values from a response payload and use these in subsequent API calls. The most common example is fetching a JWT and using that in an Authorization header for all subsequent calls.

Things are just different enough in Hoppscotch to make examples from Postman not compatible. Unless I'm missing something obvious, I was unable to get console output from the Tests tab to tell me where things were going wrong, but I did manage to figure it out eventually.

Some small doc additions can help others not run into the same friction.

Steps to reproduce

  1. Review docs
  2. Fail
  3. Open Issue asking for help ๐Ÿ˜„

Environment

Production

Version

Local

Lost "Test" and "Pre-request script" after import collection from Postman to Hopposcotch

Path: /support/solutions/community
Dear Team,
Could you please help to check that the information "Test" and "Pre-request script" are lost after import collection from Postman to Hopposcotch even exporting from Postman using "Collection v2" or "Collection v2.1"?

Exported files from Postman:
PHUC_TEST_NE_v2.1.postman_collection.json
PHUC_TEST_NE_v2.postman_collection.json

After importing to Hopposcotch:
image

Thanks!

JSON formatting for non-json content type

Sometimes response comes in JSON format but with different content type (application/octet-stream for example)
In this case tab "JSON" is disabled and user cannot beautify the output
It would be useful to be able to format the response regardless of the value of the response content-type header.

Weird light mode dark mode monitor icon

I assume that this means to use preferred system but that is weird because usually you just have light and dark and it only defaults to system default. If you want to switch through it you are not interested in the system default.

Who has access to the firebase cloud storage when using hoppscotch.io cloud storage?

Hi there,

can you clarify how cloud storage works?

Hoppscotch uses Cloud Storage for Firebase, right?

I searched the documentation and read 1923 and 1817. As well as Cloud Storage for Firebase and Google Cloud Storage

Cloud Storage offers secure-by-design features to protect your data and advanced controls and capabilities to keep your data private and secure against leaks or compromises. Security features include access control policies, data encryption, retention policies, retention policy locks, and signed URLs.

That sound great.

But who has access to that storage and my data?

Is it only me and my team that I created with hoppscotch.io? Or is hoppscotch as the service provider also theoretically able to decrypt and read my data?

Thanks a lot, Best Leif

Issue on docs

Path: /documentation/develop
Can we get instructions for running the desktop version locally?
My (fortune 100) company is looking at contributing features / fixing bugs in the desktop client and it would help us to have clear instructions for running locally

Trouble Scrolling Through Value Input in Variable List

In the environments tab, adding a value with a long char length (e.x. Bearer Token ~700 chars) to a variable in the variable list can be hard to scroll through using the touchpad on a mac.

Would it be possible to increase the width of the value input and or wrap the value?

Teams is not working

I'm experiencing following issue related to Teams

  • Dialog box that popups when tapping Invite button shows an infinite loader.
  • Plus Button (+ New) button under team collection is disabled.
  • Add new Button on the same page shows tool tip with message:
    You do not have edit access to these collections.

A way to run shell commands in pre-request script

I am building services in cloud-run that require tokens to invoke. The recommended way to fetch a token is via a cli command. https://cloud.google.com/sdk/gcloud/reference/auth/application-default/print-access-token

gcloud auth application-default print-access-token
curl -H "X-Goog-User-Project: your-project" -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" foo.googleapis.com

How would I accomplish this in hoppscotch? It doesn't appear I can kick off a sub-process in the pre-request script.

Set environment variable

How can I set the environment variable in the tests script?
I was used to setting variables in postman like this:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("TOKEN", jsonData.AuthenticationResult.IdToken);

Can I do something similar in hopscotch?

To make Environment dropdown always visible

Currently, to switch environments, the user needs to navigate from the Collections section to the Environments section, select the desired environment and return to Collections.
If the user works with 2-3 API requests and several environments that's quite a lot of extra clicks

Also in the Collection view user does not see current environment and needs to switch to the Environments section to check it

I think it would be more convenient if the environment selector was always visible - it does not take up much space and is logically part of the workspace.

unclear what "javaScript" to use

Path: /documentation/features/scripts

Current text: "Hoppscotch provides JavaScript APIs that can be used in writing pre-request scripts and building tests. You can enter your JavaScript code and run the necessary scripts."

Problem: there are a bazillion JavaScript languages. This needs to be clarified. For example use the standardized version called ECMA-Script.

Missing documentation - contributors wanted

When we started using Hoppscotch today, we were not able to find documentation on how to use the environment variables correctly. In the end, we found hoppscotch/hoppscotch#1029 (comment) which solved the issue for us, but we lost certainly about 1 hour until we found that comment.

Describe the solution you'd like
It would be nice to have some kind of documentation on how to use the environment variable next to the place where you can configure them (Environments, probably where you can enter the values?).

Additional context
It might not be intuitive that it is not possible to use environment variables in Parameters but in the URL.

Image not shown in dark mode

Image not shown in dark mode but shown in light mode

Link for docs page

Problem

improper image file name

Screenshot

Screenshot from 2021-11-28 13-22-19

Solution

Rename image file name for dark mode

Incorrect casing of GitHub

In a few places in the docs for Hoppscotch, GitHub is referred to as Github, which is not the correct way to spell/type GitHub.

I am working on a PR to correct this issue.

Is there a default PostgreSQL DB included in the container?

In this line from 2.install-and-build.md

DATABASE_URL: This is where you add your Postgres database URL, you can also use our default database shipped within the docker container postgresql://postgres:testpass@hoppscotch-db:5432/hoppscotch

It mentions the existence of a default PostgreSQL database within the container. Is this correct, or was it actually meant to be within the Docker Compose?

There is some confusion regarding this matter, as discussed in hoppscotch/hoppscotch#3414 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.