All Projects → tj → Burl

tj / Burl

better curl(1) through augmentation

Programming Languages

shell
77523 projects

Better curl(1)

burl(1) is a tiny shell script augmenting curl(1) with some helpful shortcuts.

$ POST '{"title":"better curl(1)"}' /todo/item

Installation

$ make install

Optional hostname

By default burl(1) will assume "http://localhost:3000", however you can alter this default by exporting BURL in your terminal session or .profile:

$ export BURL=http://site-im-testing.com
$ burl /pathname

Or like usual you can specify a full url:

$ burl http://google.com

-j, --json DATA

POST data as "Content-Type: application/json":

$ burl -j {"name":"tobi"} /user

HTTP verbs

Instead of the typical -X DELETE verb usage with curl(1), you may use the verbs directly, for example:

$ burl PATCH -d '[email protected]' /user/12
$ burl DELETE /users

JSON request bodies

Usually when you want to request with some JSON you do something like:

$ curl -X PATCH -d '{"name":"tobi"}' -H "Content-Type: application/json" http://localhost:3000/user/12

With burl(1) you can simply add a JSON array or object after the HTTP verb:

$ burl PATCH '{"name":"tobi"}' /user/12
$ burl POST [1,2,3] /numbers

JSON requests from files

To issue a request with the contents of ./some.json, instead of writing:

$ curl --data @some.json -H "Content-Type: application/json" http://localhost:3000/

Simply invoke:

$ POST @some.json /

Expressive header fields

With burl(1) you can define header fields without -H:

$ burl If-None-Match: etag /users
$ burl If-None-Match: etag Accept: application/json /users

Accept shorthand

Currently .json, .text and .html shorthands are available and set the Accept header field for you:

$ burl /users
$ burl /users .json
$ burl /users .text
$ burl /users .html

Extras

  • Added support for prettyjson. It needs python and json.tool module.

Aliases

Try these aliases if you want to get fancy:

alias GET='burl GET'
alias HEAD='burl -I'
alias POST='burl POST'
alias PUT='burl PUT'
alias PATCH='burl PATCH'
alias DELETE='burl DELETE'
alias OPTIONS='burl OPTIONS'
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].