Git Product home page Git Product logo

thunder-client-support's Introduction

Thunder Client

Visual Studio Marketplace Installs Visual Studio Marketplace Version NPM Version Discord Badge Reddit

Thunder Client is a lightweight Rest API Client Extension for Visual Studio Code, hand-crafted by Ranga Vadhineni with a focus on simplicity, clean design and local storage. The source code is not open source. You can report any Bugs Or Feature requests here.

Story behind Thunder Client

  • Read Launch Blog Post on Medium

Milestones

  • The extension was launched on March 31st, 2021
  • 500K downloads on Dec 20th, 2021
  • 1 Million downloads on July 13th, 2022
  • View All Milestones

Innovations

  • First to introduce GUI based API Client for VS Code.
  • First to introduce 100% local storage API Client.
  • First to introduce Scriptless Testing.
  • First to introduce an advanced CLI that runs Requests, Collections and cURL commands.
  • More to come...

Follow Us for Updates

 Twitter     LinkedIn

How to Use

  • Install the extension, click the Thunder Client icon on the Action Bar.
  • From the sidebar click New Request button to test API
  • Video: youtube.com/watch?v=NKZ0ahNbmak

Thunder Client

Main Features

  • Lightweight and easy to use REST API Client.
  • Supports Collections and Environment variables.
  • Scriptless Testing: Easily test API responses with a GUI-based interface.
  • Local Storage: The extension saves all data locally on the user's device.
  • Git Sync: Save requests data in your Git repository for team collaboration.
  • Advanced CLI: Run requests, multiple collections and cURL commands from the terminal.

Documentation (NEW)

thunder-client-support's People

Contributors

adtc avatar dalpatrathore avatar flooyo avatar fmorschel avatar henry-js avatar iammohitm avatar meekhasaji avatar rangav avatar ricpuk avatar satvikg7 avatar seoalexramon avatar sorinluc avatar sourcer85 avatar surfmuggle avatar ykrx 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

thunder-client-support's Issues

[Feature Request] gRPC Support

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Currently I am using BloomRPC for all my gRPC testing but I found Thunder Client and loving it so far for testing my rest/graphql based (micro)services but I would also love to use it to test my gRPC based service as then I don't have to leave my IDE any to do any testing <3

Describe the solution you'd like
A clear and concise description of what you want to happen.

An option to select .proto files, enter a host to send requests to and be able to send request to the gRPC service to test it like it's a normal REST based service.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Like mentioned before I am currently using BloomRPC for this, it generates a client on the flow so you can easily use it with whatever gRPC service you want by just selecting the .proto files.

Implementation:

I think it's based to use grpc-web for this, as you can see the Thunder Client as a web-app - we don't need server implementation. Or option is to use the @grpc/proto-loader.

Support Ctrl+S to save env vars

Is your feature request related to a problem? Please describe.

Yeah, I hit CTRL+S assuming it saved the item

Describe the solution you'd like

Save when I hit CTRL+S

Describe alternatives you've considered

Click save button

Implementation:

Add ability to group requests

I just discovered this extension today and it's very exciting! I can relate to your reasons for starting work on it, amazing job on it so far :)

I have APIs that can contain over 100 endpoints, it'd be great to be able to group requests for organisation please!

JavaScript scripting pre-request feature

In postman, we can attach scripting with requests. We can modify the request before it sending to the server using pre-req script. This feature is really usefull it would be great if you can include this feature into Thunder Client

Customizable location for settings file

Is your feature request related to a problem? Please describe.
Would be great to either list the location the settings are saved, so that we can share with others easily

Describe the solution you'd like
If the collections were saved to a specific file, and updated on any changes so we can share it with others without having to export manually. If you could also customise the location for any collection so you can sync to dropbox, add to a git repo or something would be great

(feature) Use current folder/workspace to load/save Request

Is your feature request related to a problem? Please describe.
You cannot share easily when working in team. You have to export and import every time there's a change. It becomes less practical.

Describe the solution you'd like
You could create a collection related to folder/workspace. This would create a file in the current folder/workspace (allow to change location in settings). When you open a folder/workspace, it would look to find that file automatically and display it in the collections. When editing that collection, it would save automatically in the file.

Features to make Thunder Client Better, Folders, Configurations and Right Click Features

So I heard about this extension thunder client from a youtuber it was really amazing and am ready to test and see how it work.

I like postman so much and how it works and believe me, the current postman we are using was not really how it was when it first came out and I so much applaud the team behind it for the continuous development and improvements they have done so far to make using postman worth it for both rest API and graphl support.

I and my team are currently working on a project where we are using postman but due to some issues, sometimes it fails to start we have to restart the pc before it will start and synchronization is offline first which means if am not connected to the internet I can't access my collections in postman if there is a way to change that I don't know.

When I saw the video about this extension it got my attention and I decided to test it and here are the issues that made my team not go on with it.

  1. Once I click on the Collections tab and select a collection, am not able to create a request inside the collection, we are used to right-clicking and select add request to be sure that this new request belongs to this collection.

  2. I can't create folders and subfolders inside a collection to able to group my requests

  3. I can't set collection-specific configurations like header authorization for every request, even though I set the environment variable am not able to set headers for a single collection, every request in this collection will use it

So far the extension is good and wonderful for a start. I will love it if this features a put into consideration thanks

Add Headers using raw mode

Is your feature request related to a problem? Please describe.
In the "Header" tab, add the "RAW" option, then when you need to copy all the "Headers" of a Web, you can paste them quickly.

Describe the solution you'd like
image

Describe alternatives you've considered

Implementation:

Allow Environments to inherit from others (prevents variable re definition)

Is your feature request related to a problem? Please describe.
As a user I don't want to re-define common variables on each of the environments

Describe the solution you'd like
Envirnoment inheritance/extension something like nested folders for environment with a hierarchy so that variable definitions can be reused.

Describe alternatives you've considered
Copy/pasting variables in all Environments, it gets hard when you need to make changes to them, specifically if you have many Environments

Implementation:
Postman handles this by means of Workspaces and Global variables. I don't find that a good solution. Because it doesn't allow for multiple nesting of environments (just one Global variables section) nor does make much sense to me. I'd rather have inheritance.

Set env variable from returned header.

Is your feature request related to a problem? Please describe.
API I'm using returns token in header and not in the body as json.

Describe the solution you'd like
It would be nice to set env variables from header response in the same way as from json results.

Publish to Open VSX

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Implementation:

Add RSocket/Web Socket support

As an API developer, I often work on streaming APIs based on RSocket. It'd be useful if Thunder Client can add support for this.

Variable replacements in variables

Is your feature request related to a problem? Please describe.

Yes, if I reference a variable in the value of another variable it isn't expanded

image

Describe the solution you'd like

Expand them.

Describe alternatives you've considered

Hard-coding instead of referencing.

Implementation:

Respect Editor font family settings

Thunder Client displays the request body and response using it's own monospaced font family stack. Instead, it should use the editor font family configured by the user.

Environment:
Thunder Client 1.0.5
VS Code 1.55.0
Windows 10 20H2

Usability feedback

First of all, thanks a lot for your great extension! Exactly what I have looked for over the past month.

Since I could not find any specific contribution guidelines, please find some usability feedback below:

  • It would be great to have a Thunder Client: Send Request command that one could fire from command+shift+p.
  • Furthermore, it would be great to have a Thunder Client: Re-run Last Request command.
  • It would be important to have the option to store the collections also within the current project directory. This would enable teams to share their requests via git.

Vim Key bindings for Body.

I'm not sure what you're using for the input field for the body, but I have my editor set up to used vim key bindings. I actually integrated neovim into the editor itself. Sadly, this doesn't work for the input box you made. I hope, if it's not too difficult, this input box could enjoy support for vim key bindings.

v1.1.0 Features & Discussion

Hi All,

Thanks everyone for the support. Just want to give an update of whats coming for the next release. This will be major update since initial launch.

Here are the planned features for v1.1.0

New Features

  • Custom Storage Location for collections to integrate with git, see README for details - #2 (status: completed)
  • Nested folder support for Collections - #8 (status: completed)
  • Improved request creation workflow to save to collections faster - #7 (status: completed)
  • Run Last Request from command palette. #2 (status: completed)
  • Drap & Drop sorting for requests & folders (status: completed)
  • Support Ctrl+S to save env vars #36 (status: completed)
  • Create variable in env if doesn't exist when set - #35 (status: completed )
  • Postman import nested folder support (status: completed )
  • Shift+Alt+F to format JSON body #17
  • proxy settings #61
  • Show "Test Results" count in red if a test fails #55

BUG Fixes

  • Fixes typed url text coverts to html symbol (status: completed) - #13
  • Fixes state value missing in OAuth 2.0 Url (status: completed) - #26
  • Fixes enable scope for OAuth client credentials request (status: completed) - #25
  • Fixes Set Env Variable in Tests only works on last instance v1.0.7 - (status: completed) - #46
  • Fixes Cannot test is equal to env variable - (status: completed) #58
  • Fixes Can't Import Postman Collection for no reason #77
  • Fixes Broken format in JSON Body #63
  • Fixes Import and save body parameters #47
  • Can't save more than one environment variable from response #81

ANNOUNCEMENT

  • Thunder Client has crossed 50k downloads now, Thanks for the amazing response from everyone 🎉.

LIVE NOW

  • Pulished v1.1.0 - documentation is updated partially.

If anything is not clear, please post your comments below, i will update documentation.

Please leave your feedback about v1.1.0 - features you like or features that need further improvements..

Cannot send requests to localhost

Describe the bug
Requests to localhost fail with an "unknown error occurred". Response code is ERROR, Size is 0B, and time is 0ms.
Requests to other endpoints like Google, ThunderClient.io, etc all work.

To Reproduce
Express server on localhost:3000. Request work fine in Postman, but not in Thunder Client

Expected behavior

Requests are sent properly

Platform:

  • OS: Windows 10

Solution:

Is there anywhere where logs are stored? Couldn't find documentation on this.

Need to create/run request before you can save it to collection?

It seems that you need to create and then run a request before you can save it to a collection.

That is a bit of an awkward workflow and not intuitive at all.

It would be nice if the create request tab had a "save" button, so you could create the request and save it to a collection, without having to run it first.

setTo not working

I just found this tool today and was playing with it. It is really cool! Thanks!

I have a problem with setting variable from the response or I'm doing it wrong.
Test is failing for setTo. I even tried few options.
It would be nice if you could add setTo to docs.

Also I noticed that when I add 4 tests in test results I can see only 3, like the first one is ignored.

Screenshot 2021-04-21 at 15 39 32

Add VC support

It would be fantastic to be able to sync a collection and environment to files within a project, so that version controlling them would be simple. Syncing with other developers this way would be super helpful :)

Import postman collections and curl

Hi!

Maybe you can add a feature that import a collection from postman json files? Also, a import from curl would be nice :D

Nice project 🚀

Modifying a saved request in a collection generates a new request and discards the changes in the existing one

Describe the bug
A dublicate request is created whenever I modify a request saved in a collection.

To Reproduce

  1. Make a request and save it to a collection.
  2. Changer a parameter in the request query.
  3. A new unnamed request will appear in the collection, but the changes will be reverted in the saved request.

Expected behaviour
The modifications to an existing request in a collection should be saved and there is no need to create a dublicate request in the collection.

Platform:

  • Thunder Client: v1.0.7
  • OS: Mac OS
  • VS Code: Version: 1.55.2 (Universal)
  • Commit: 3c4e3df9e89829dce27b7b5c24508306b151f30d
  • Date: 2021-04-13T09:36:32.643Z
  • Electron: 11.3.0
  • Chrome: 87.0.4280.141
  • Node.js: 12.18.3
  • V8: 8.7.220.31-electron.0
  • OS: Darwin x64 20.3.0

Support State for OAuth 2.0

When I go to generate the token, I get a url that doesn't have the the content of the state parameter, it just says state=&client_id=<CLIENT ID> even though there is text in the state text field.

image

Save the requests/collections in the project folder

Is your feature request related to a problem? Please describe.
To keep the test requests in sync with the project.
When the project's endpoints change (new fields, new requests, new version), the Thunder Client requests need to change as well. When debugging an older version of the project, deployed somewhere, it would be great to use the matching Thunder Client requests.

Describe the solution you'd like
There could be something like a thunder_client.config file within the project folder, that contains all the requests and the environments. So it would be version controlled together with the project. It would need to be some text based file, so it can be easily merged when multiple team members add/change requests.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Implementation:

Shift+Alt+F to format JSON body

Is your feature request related to a problem? Please describe.

Describe the solution you'd like

Describe alternatives you've considered

Implementation:

typed url text coverts to html symbol

Describe the bug
I was typing in a filtering argument on my url, and it was automatically converted to the equivalent HTML symbol.

To Reproduce
in the URL box, I started with https://example.tld:1234/endpoint, then added ?order=timestamp&timestamp.gt...
except that as soon as I complete typing &times it converts it to × and jumps to the beginning of the url string.
I also tested this with other valid html symbol codes and see the same behavior, for example &aring
see https://www.htmlsymbol.com/html-entities/ for more examples

Expected behavior
let me type my argument without converting and moving the cursor

Platform:

  • OS: Win10

Solution:
I don't see the code available, but I assume something is parsing the url string and trying to keep it safe. It should probably ignore &codes

Support change prefix in Bearer Token Auth

Hi and congrats for such a great work. It would be awesome if could be possible to set custom prefixes other than Bearer in Authentication section like Insomnia does. This feature could improve this awesome extension.

Thanks for the effort and keep going forward with it

Import request as cURL

Hi. morning. A feature that I use a lot on Postman is "import as cURL". So I can copy a request made in Chrome and replicate it for analysis in Postman. I think it would be interesting to have the same functionality.

A solution that import the cURL request and replicates as a new request.

Implementation:
I can help to implements a translator, but I dont't have a code example now.

Doesn't work on the M1 MacBook Pro 13

Describe the bug
The New request tab is blank

To Reproduce

  • Install the extension
  • Add a collection
  • Create new request
    Expected behavior
    See options on the request screen

Platform:

  • OS: MacOS Big Sur, ARM.

Screenshot 2021-04-25 at 4 31 33 PM

Screenshot 2021-04-25 at 4 31 27 PM

Solution:

Auth at Collection and Folder Level

Is your feature request related to a problem? Please describe.

Yeah, don't want to enable auth for every request

Describe the solution you'd like

Allow setting Auth at collection and folder level

Describe alternatives you've considered

Not using OAuth provider

Implementation:

Support Folders inside collection

Is your feature request related to a problem? Please describe.
Just as postman allows it would be very helpful to be able to organize requests into folders inside of a collection

Describe the solution you'd like
A way to organize into folders (even nicer if they can be infinite levels deep).

Describe alternatives you've considered
Can be very similar to how Postman has nested folders inside a collection

Import and save body parameters

Is your feature request related to a problem? Please describe.
I have imported a collection from postman, but the body parameters (formdata) were not imported, so I added manually, but every time I go back to the request they are gone, and have to type them again, this is not very practical.

Describe the solution you'd like
Be able to import body parameters from postman and be able to keep them between vscode restarts and close/reopen request

Create variable in env if doesn't exist when set

Is your feature request related to a problem? Please describe.

Yes, In a Test I want to set an env var, but it looks like I have to first manually create that variable.

Here:
image

Describe the solution you'd like

Create the variable in the Env if it doesn't already exist.

Describe alternatives you've considered

Manually create the variable before running.

Implementation:

Set Env Variable in Tests only works on last instance v1.0.7

Describe the bug

In the Tests for a request only the last Set Env Variable is being set, any Set Env Variable prior to the final one are left as their prior value or blank.
To Reproduce

Make a call and attempt to assign 2 Env Variables using the test system, only one will be set.
Expected behavior

Any Tests that preform a Set Env Variable will set those Env Variables.
Platform:

  • OS: Windows10, WSL2 with Ubuntu 20.04 container
    Notes:
    I can also do testing on Linux (Ubuntu, Pop-os!), Windows 10 without WSL2 and Macos if needed.

Solution:

log_id is set but log_user is not
log_id set
log_user is set but log_id is not
log_user set

Html Renderer

It would be super helpful if this amazing extension could render html for responses, kind of like how Postman does it!

Pre-request Script like postman

Is your feature request related to a problem? Please describe.
For some APIs system, they request hash the ApiKey with the user token.
So I need to build a script to build some variables before sending a request.

Describe the solution you'd like

Describe alternatives you've considered

Implementation:

Right Click > Copy Value to Environment Variable

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
I want to fill my variable value with something from api response, an easy way to block and copy the response to my variable is awesome. Like the build-in feature in Postman, thank you!

Extract data from a JSON response and set it as an environment variable?

How can we extract data from a JSON response and set it as an environment variable to be used by subsequent requests?

Looked in the tests tab, but don't see a way to do this.

We do this all the time using REST Client (and Postman), but can't see any way to do this with Thunder Client. Without this capability, we won't be able to use your extension, as it's a critical feature for us.

Thanks!

Generate JSON body values

Is your feature request related to a problem? Please describe.

I'm always frustrated when I have to always writes the JSON body value by myself.

Describe the solution you'd like

I would like to use something like faker.js to generate the data value into the JSON body.

Describe alternatives you've considered

Having abilities to use something like faker.js functionality.

Implementation:

OAuth Authentication/Client Credentials should support scope

Nice extension!

Describe the bug
When selecting "Client Credentials" under Oath Authentication "Scope" is greyed out (presumably thus unused). When "Generate Token" ius clicked the call fails with "Something went wrong" if this is required by the authentication provider.

To Reproduce

  1. Select Oath Authentication
  2. Select Grant Type "Client Credentials"
  3. Set Token Url, Client ID, Client Secret. Unable to set Scope

Switching to Grant Type "Authorization Code", setting value and switching back to "Client Credentials" has the same behaviour

Expected behavior
Call succeeds, Access Token is retrieved and value set as Authorization: Bearer xxxx in the request header.

Platform:

  • OS: Any

Solution:
The POST call to retrieve the token should include scope={{SCOPE}} as a parameter

Hyperlink to the request on the run all page

Is your feature request related to a problem? Please describe.

After I run all a collection, I want to be able to quickly go to the results by clicking on the request

Describe the solution you'd like

Make the following rows clickable

image

Describe alternatives you've considered

Go to activity and find the request

Implementation:

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.