https://github.com/bigbuildbench/bayne_dot-http

https://github.com/bigbuildbench/bayne_dot-http

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: BigBuildBench
  • License: apache-2.0
  • Language: Rust
  • Default Branch: master
  • Size: 184 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed over 1 year ago
Metadata Files
Readme License Code of conduct

README.md

dot-http

Verify gitmoji Powered by Rust

dot-http is a text-based scriptable HTTP client. It is a simple language that resembles the actual HTTP protocol but with just a smidgen of magic to make it more practical for someone who builds and tests APIs.

demo

Installation

Script

Enter the following in a command prompt:

text,no_run curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git bayne/dot-http

Binary releases

The easiest way for most users is simply to download the prebuilt binaries. You can find binaries for various platforms on the release page.

Cargo

First, install cargo. Then:

bash,no_run $ cargo install dot-http

You will need to use the stable release for this to work; if in doubt run

bash,no_run rustup run stable cargo install dot-http

Usage

See dot-http --help for usage.

Vim

See this plugin to use dot-http within vim.

The request

The request format is intended to resemble HTTP as close as possible. HTTP was initially designed to be human-readable and simple, so why not use that?

simple.http text,no_run GET http://httpbin.org Accept: */* Executing that script just prints the response to stdout: ```text,no_run $ dot-http simple.http GET http://httpbin.org/get

HTTP/1.1 200 OK access-control-allow-credentials: true access-control-allow-origin: * content-type: application/json date: Sat, 18 Jan 2020 20:48:50 GMT referrer-policy: no-referrer-when-downgrade server: nginx x-content-type-options: nosniff x-frame-options: DENY x-xss-protection: 1; mode=block content-length: 170 connection: keep-alive

{ "args": {}, "headers": { "Accept": "/", "Host": "httpbin.org" }, "url": "https://httpbin.org/get" } ```

Variables

Use variables to build the scripts dynamically, either pulling data from your environment file or from a previous request's response handler.

simplewithvariables.http ```text,no_run POST http://httpbin.org/post Accept: / X-Auth-Token: {{token}}

{ "id": {{env_id}} } ```

http-client.env.json text,no_run { "dev": { "env_id": 42, "token": "SuperSecretToken" } }

Note that the variables are replaced by their values ```text,norun $ dot-http simplewith_variables.http POST http://httpbin.org/post

HTTP/1.1 200 OK access-control-allow-credentials: true access-control-allow-origin: * content-type: application/json date: Sat, 18 Jan 2020 20:55:24 GMT referrer-policy: no-referrer-when-downgrade server: nginx x-content-type-options: nosniff x-frame-options: DENY x-xss-protection: 1; mode=block content-length: 342 connection: keep-alive

{ "args": {}, "data": "{\r\n \"id\": 42\r\n}", "files": {}, "form": {}, "headers": { "Accept": "/", "Content-Length": "18", "Host": "httpbin.org", "X-Auth-Token": "SuperSecretToken" }, "json": { "id": 42 }, "url": "https://httpbin.org/post" } ```

Environment file

Use an environment file to control what initial values variables have

http-client.env.json text,no_run { "dev": { "host": localhost, "token": "SuperSecretToken" }, "prod": { "host": example.com, "token": "ProductionToken" } }

env_demo.http text,no_run GET http://{{host}} X-Auth-Token: {{token}}

Specifying different environments when invoking the command results in different values for the variables in the script

```text,norun $ dot-http -e dev envdemo.http GET http://localhost X-Auth-Token: SuperSecretToken

$ dot-http -e prod env_demo.htp GET http://example.com X-Auth-Token: ProductionToken ```

Response handler

Use previous requests to populate some of the data in future requests

response_handler.http ```text,no_run POST http://httpbin.org/post Content-Type: application/json

{ "token": "sometoken", "id": 237 }

{% client.global.set('authtoken', response.body.json.token); client.global.set('someid', response.body.json.id); %}

PUT http://httpbin.org/put X-Auth-Token: {{auth_token}}

{ "id": {{some_id}} } ```

Data from a previous request

```text,no_run $ dot-http test.http POST http://httpbin.org/post

HTTP/1.1 200 OK access-control-allow-credentials: true access-control-allow-origin: * content-type: application/json date: Sat, 18 Jan 2020 21:01:59 GMT referrer-policy: no-referrer-when-downgrade server: nginx x-content-type-options: nosniff x-frame-options: DENY x-xss-protection: 1; mode=block content-length: 404 connection: keep-alive

{ "args": {}, "data": "{\r\n \"token\": \"sometoken\",\r\n \"id\": 237\r\n}", "files": {}, "form": {}, "headers": { "Accept": "/", "Content-Length": "46", "Content-Type": "application/json", "Host": "httpbin.org" }, "json": { "id": 237, "token": "sometoken" }, "url": "https://httpbin.org/post" } ```

Can populate data in a future request

```text,no_run $ dot-http -l 16 test.http PUT http://httpbin.org/put

HTTP/1.1 200 OK access-control-allow-credentials: true access-control-allow-origin: * content-type: application/json date: Sat, 18 Jan 2020 21:02:28 GMT referrer-policy: no-referrer-when-downgrade server: nginx x-content-type-options: nosniff x-frame-options: DENY x-xss-protection: 1; mode=block content-length: 336 connection: keep-alive

{ "args": {}, "data": "{\r\n \"id\": 237\r\n}", "files": {}, "form": {}, "headers": { "Accept": "/", "Content-Length": "19", "Host": "httpbin.org", "X-Auth-Token": "sometoken" }, "json": { "id": 237 }, "url": "https://httpbin.org/put" } ```

Contributing

Contributions and suggestions are very welcome!

Please create an issue before submitting a PR, PRs will only be accepted if they reference an existing issue. If you have a suggested change please create an issue first so that we can discuss it.

License

Apache License 2.0

Owner

  • Name: BigBuildBench
  • Login: BigBuildBench
  • Kind: organization

abbr. B3, benchmarking the repo-level understanding capability of your LLMs by reconstructing project build-file.

GitHub Events

Total
  • Create event: 2
Last Year
  • Create event: 2

Dependencies

.github/workflows/rust.yml actions
  • actions-rs/cargo v1 composite
  • actions-rs/toolchain v1 composite
  • actions/checkout v2 composite
Cargo.lock cargo
  • 229 dependencies
Cargo.toml cargo
  • httpmock 0.6.6 development
  • tempfile 3.1.0 development