If you want to interact with an API via the command line, curl is the obvious choice on a Linux machine. Most of the time, curl comes pre-installed on your system.
The command utility is very fast, but not very user-friendly.

curl 🔗︎

Here's an example for a POST request with json:

curl -d '{"username":"jane","email":"jane@test.cc"}' -H "Content-Type: application/json" -X POST https://desolate-cliffs-02122.herokuapp.com/users

PUT:

curl -d '{"username":"jane","email":"jane@test.cc"}' -H "Content-Type: application/json" -X PUT https://desolate-cliffs-02122.herokuapp.com/users/1

You can find a detailed explanation on GitHub Gists.

httpie 🔗︎

httpie is probably the most well-known alternative to curl. httpie is not as powerful, but easier to use. httpie is written in Python. It feels slower than curl or curlie (below).

Find installation instructions for your OS here.

POST request with json:

http --json POST https://desolate-cliffs-02122.herokuapp.com/users username='jane' email='jane@test.cc'

PUT:

http --json PUT https://desolate-cliffs-02122.herokuapp.com/users/1 username='jane' email='jane@test.cc'

curlie 🔗︎

curlie offers the features of curl, with the interface of httpie. The tool is written in Golang.

You can install it with homebrew, pkg, as a binary. Other packages are available, too. For example, there's an AUR package for Arch Linux.

Example Usage: curlie [CURL_OPTIONS...] [METHOD] URL [ITEM [ITEM]]

POST:

curlie POST https://desolate-cliffs-02123.herokuapp.com/users username='jane' email='jane@test.cc'

PUT:

curlie PUT https://desolate-cliffs-02122.herokuapp.com/users/1 username='jane' email='jane@test.cc'