httpie / cli

🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more.
https://httpie.io
BSD 3-Clause "New" or "Revised" License
32.74k stars 3.68k forks source link

Requests templates #1479

Open nebolax opened 1 year ago

nebolax commented 1 year ago

Checklist

Enhancement request

If I am not mistaken then currently there is no support for templates, right?

I would like to see templates in httpie, so that I don't have to retype same arguments across many requests.

By templates I mean that instead of executing http POST my.api.endpoint/users login=testuser password=testpassword I could just do http login or something along this line.

In more details, I would like to see the abilities to:

  1. Create a template from a command
  2. Edit a template (e.g. http edit login password=newpassword updates the password argument in the template)
  3. Use a template with modifications. For example I have to pass many casual arguments to a group of endpoints (pagination, sorting, apikey, etc.). The idea is to create a template like base = http my.api.endpoint sort=asc page=1 apikey=asdf and then use it for interacting with various endpoints. Like http base /some/endpoint param1=x param2=y

Problem it solves

I am always frustrated when I have to retype arguments / copy-paste requests. Example: I am developing an API of an app and there are a few endpoints:

  1. Login a user
  2. Add some money to the user's account
  3. Check the balance

Currently every time I want to do a loop (login, add some money, check balance) I have to enter the entire commands. With templates this process would be much simpler.

Additional information, screenshots, or code examples

lefuturiste commented 1 year ago

I've the exact same problem as you, I've tried to use fish alias but It's a little bit complicated because the order of the element matters, for exemple the place where the http methods is matter. It would be easier if there was a method flag.

sanredz commented 1 year ago

We are a group of KTH students who would like to work on this issue!

lefuturiste commented 1 year ago

We are a group of KTH students who would like to work on this issue!

Well I was ready to investigate but go ahead and contribute!

hookenz commented 5 months ago

I would like to be able to pass a template file and have http replace all the keys in the template file with the values from the command line. That will work well for nested or complex json.

It would then POST or PUT the resulting output as data to send to the server.