rested (Experimental)
Language/Interpreter for easily defining and running requests to an http server.
Why?
To easily test apis during development, and the Postman experience is slow. As someone who edits text files professionally, it seems natural to have a DSL for this usecase as well. It's a much better workflow to use curl commands in shell scripts than clicking around a GUI. Many developers have great success with that strategy, and it's powerful because linux (piping files) is powerful. But it could be simpler to still to have a DSL. Hence this experiment.
Install (the CLI Interpreter)
From crates.io
or from npmjs.com
Usage
The CLI runtime for Rested, the language/interpreter for easily defining and running requests to an http server
Usage: rstd [COMMAND]
Commands:
run Run a script written in the language
env Operate on the environment variables available in the runtime
completion Generate a completions file for a specified shell
lsp Start the rested language server
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
Write a script, for example
// assuming file name requests.rd
@log
get https://jsonplaceholder.typicode.com/todos/1
Run it with the CLI.
Features
Global constants
set BASE_URL "http://localhost:8080/api/v2"
setting BASE_URL like so, allows you to be able to request to pathnames
get /potatoes
Let bindings
let variable = "Bearer <token>"
Defining request headers and request body
post /potatoes
Reading environment variables
set BASE_URL env("base-url")
post /tomatoes
Setting environment variables (CLI)
It's also possible to namespace the variables.
Reading files
post /tomatoes
Attributes
@log("output/yams.json")
get /yams