Skip to main content
Deno 2 is finally here šŸŽ‰ļø
Learn more

About

  • :hourglass_flowing_sand: Are you waiting for ages until your UI http client loads all itā€™s plugins that you donā€™t need?
  • šŸ“Ÿ Are you tired of your UI http client asking you to sign in/sign up so they can create proper workspace for you? (and get your email to send you marketing emails)
  • šŸ—„ļø Are you spending lots of time trying to find requests youā€™ve sent to given api months ago?
  • šŸ”¬ Are you searching how to change request method in curl because you donā€™t use it that often?
  • šŸ“‹ Are you working with modern json http apiā€™s?
  • :dash: Do you want to write smoke tests for your api?

If youā€™ve answered at least 1 yes then youā€™re at right place. jsonr is a simple CLI tool for interacting with json http apiā€™s and write simple smoke tests. Itā€™s available from your terminal anytime when you need it (so you donā€™t need to switch context) and itā€™s not aimed to be an ultimate solution for everything. Thatā€™s why itā€™s so simple to use.

image

Run jsonr --help for details.

Prerequisites

Deno runtime environment https://deno.land

Installation

deno install -f -r --allow-net --allow-read --allow-write https://deno.land/x/jsonr/main.js

--allow-write permission is needed only if you are planning to use -o parameter (write response body to file, check jsonr --help for details)

If your requests are failing due to certificate validation errors (and you trust target server) you can run temporary command like:

deno run --allow-net --unsafely-ignore-certificate-errors https://deno.land/x/jsonr/main.js ...

It will display warning about disable ssl verification, but you should be able to perform requests. If you work frequently with such unsafe servers you can consider introducing jsonr-unsafe sitting next to your main jsonr instance:

deno install -n jsonr-unsafe -f -r --unsafely-ignore-certificate-errors --allow-net --allow-read --allow-write https://deno.land/x/jsonr/main.js

Usage

Sample usage:

jsonr -h "Authorization: Bearer MyToken" my-request.http

my-request.http file content:

POST http://my-api.com/endpoint

{
  "someKey": "someValue"
}

Type jsonr --help for more details on usage once you have a tool installed.

Hints

If you want to disable colors (at least for main log messages), you can use:

NO_COLOR=1 jsonr ...

Contribution

If you want to implement/request new features you are more than welcome to contribute. Please keep in mind that this tool is supposed to be super simple to use and cover ~80% of use cases for playing around with JSON HTTP APIā€™s. Instructions (ā€“help) for this tool should be possible to read in less than 5 minutes. If more features will be added this may be hard to achieve.