Skip to content
Snippets Groups Projects
Commit 14125e62 authored by Hahn Axel (hahn)'s avatar Hahn Axel (hahn)
Browse files

Merge branch 'no-insecure-flag-by-default' into 'master'

No insecure flag by default

See merge request !8
parents 1e1cb06b bdb636ba
No related branches found
No related tags found
1 merge request!8No insecure flag by default
## Changelog
### v0.11 (2024-11-20)
This release was published to disable insecure requests.
❌ Removed: curl default parameter `-k` (it disables ssl verification)
⚠️ Deprecated: The new filename is `http.class.sh`. When using `rest-api-client.sh` you get a deprecated warning on STDERR
🔷 Added: function `http.setInsecure` - set "1" to enable `-k` again; use no parameter to disable
🔷 Added: function `http.setCA "<file>"` to define a custom ca file (results in `--cacert <file>`)
🔷 Added: function `http.addCurlparam "<parameter>"` to add any missing curl parameter
......@@ -18,11 +18,11 @@ Download the archive i.e. as zip:
#### Copy shell script somewhere
Copy the file `rest-api-client.sh` anywhere you need it.
Copy the file `http.class.sh` anywhere you need it.
If you need it in a single script then copy it to its directory. If you need it more often then copy it to a folter of your PATH environment.
### Get the script only
For pure functionality without docs and more you can download the script itself
`wget https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/raw/master/rest-api-client.sh`
`wget https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/raw/master/http.class.sh`
## Source the script
You must source the rest-api-client.sh. Then its functions are usable in the current process.
You must source the `http.class.sh`. Then its functions are usable in the current process.
The "methods" start with "http" dot "[method]".
## Initialize a new request
......@@ -32,7 +32,7 @@ Now you can get its data, eg
#!/bin/bash
cd "$( dirname "$0" )" || exit
. ../rest-api-client.sh || exit 1
. ../http.class.sh || exit 1
http.init
http.makeRequest GET "http://www.example.com/"
......
......@@ -2,13 +2,13 @@
### Source the script
You must source the rest-api-client.sh. Then its functions are usable in the current process.
You must source the `http.class.sh`. Then its functions are usable in the current process.
The "methods" start with "http" dot "[method]".
```sh
#!/bin/bash
cd "$( dirname "$0" )" || exit
. ./rest-api-client.sh || exit 1
. ./http.class.sh || exit 1
```
......@@ -88,9 +88,12 @@ Define a base url that will be used as prefix when making a request to a relativ
#### Other funtions
* `http.setAccept <ACCEPT>`
* `http.setDocs URL` http.setMethod METHOD Set a http method. Use an uppercase string for GET|POST|PUT|DELETE|...
* `http.addHeader HEADER_LINE` Add a header line to the request. This command can be repeated multiple times.
* `http.setDocs` Set a docs url. If set it will be shown as additional hint when a request fails.
* `http.setMethod <METHOD>` Set a http method. Use an uppercase string for GET|POST|PUT|DELETE|... (any method)
* `http.setCA <FILE>` Set a ca cert file (it results in --cacert \<file\>). Without parameter this flag will be removed.
* `http.setDocs <URL>` Set a docs url. If set it will be shown as additional hint when a request fails.
* `http.setInsecure 1` Do not verify SSL certificate (it results in `-k` parameter not recommended). Without parameter this flag will be removed.
* `http.addHeader <HEADER_LINE>` Add a header line to the request. This command can be repeated multInsecure 1
* `http.addCurlparam <parameter>` Add any mising curl parameter when making the requests. This command can be repeated multiple times.
## Make a request
......@@ -263,14 +266,14 @@ You can run `http.help` to get an overwiew over all functions.
#
# step one: source the shell script
#
$ . ./rest-api-client.sh
$ . ./http.class.sh
#
# then use its functions.
#
$ http.help
Bash REST API client v0.10
Bash REST API client v0.11
This is a bash solution to script REST API calls.
......@@ -316,10 +319,20 @@ INSTRUCTION:
renmark:
Use http.setUrl to built a complete url.
http.setCA "<FILE>"
Set CA file to verify the server certificate.
Default: [empty] = use system defaults
Without parameter the cafile is removed
http.setDocs "<URL>"
Set a docs url. If set it will be shown as additional hint when a
request fails.
http.setInsecure 1
Set insecure flag by giving any non empty value.
Default: [empty] = secure requests
Without parameter the insecure flag is removed
http.setMethod "<METHOD>"
Set a http method. Use an uppercase string for GET|POST|PUT|DELETE|...
......@@ -332,7 +345,12 @@ INSTRUCTION:
http.addHeader "<HEADER_LINE>"
Add a header line to the request.
This command can be repeated multiple times.
This command can be repeated multiple times to add multiple headers.
http.addCurlparam "<CURL_PARAMETER>"
Add any missing parameter for curl requestst.
This command can be repeated multiple times to add multiple prameters.
You also can add multiple parameters with one command.
- caching functions
......@@ -417,7 +435,6 @@ INSTRUCTION:
Example:
http.makeRequest "https://example.com/api/"
http.responseExport /tmp/something_AUTOFILE_.txt
http.responseImport "<FILE>"
Import an export file.
To use the AUTOFILE mechanism from export set
......
......@@ -4,7 +4,7 @@ A required step is sourcing the script to make the http.* function available in
```sh
# --- source script
> . ./rest-api-client.sh
> . ./http.class.sh
```
Then you can follow the examples.
......
## rest-api-client.sh
## http.class.sh
List of all functions in alphabetic order
### http()
[line: 96](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L96)
[line: 97](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L97)
### http.addCurlparam()
```txt
Add an additional curl parameter
🟩 param string line to add, eg "Connection: keep-alive"
```
[line: 701](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L701)
### http.addHeader()
......@@ -16,7 +28,7 @@ Add a line to the request header
```
[line: 682](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L682)
[line: 690](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L690)
### http.dump()
......@@ -28,7 +40,7 @@ no params
```
[line: 577](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L577)
[line: 585](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L585)
### http.flushCache()
......@@ -40,7 +52,7 @@ no params
```
[line: 842](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L842)
[line: 884](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L884)
### http.getRequestAge()
......@@ -55,7 +67,7 @@ returns integer age of the response in sec
```
[line: 424](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L424)
[line: 432](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L432)
### http.getRequestTs()
......@@ -69,7 +81,7 @@ returns string the timestamp of the response
```
[line: 410](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L410)
[line: 418](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L418)
### http.getResponse()
......@@ -83,7 +95,7 @@ returns string the response body
```
[line: 443](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L443)
[line: 451](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L451)
### http.getResponseData()
......@@ -97,7 +109,7 @@ returns string the response data
```
[line: 456](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L456)
[line: 464](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L464)
### http.getResponseHeader()
......@@ -111,7 +123,7 @@ returns string the response header
```
[line: 469](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L469)
[line: 477](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L477)
### http.getResponseRaw()
......@@ -125,7 +137,7 @@ no param
```
[line: 482](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L482)
[line: 490](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L490)
### http.getStatus()
......@@ -137,7 +149,7 @@ no params
```
[line: 493](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L493)
[line: 501](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L501)
### http.getStatuscode()
......@@ -149,7 +161,7 @@ no params
```
[line: 506](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L506)
[line: 514](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L514)
### http.help()
......@@ -161,7 +173,7 @@ no params
```
[line: 853](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L853)
[line: 895](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L895)
### http.init()
......@@ -174,7 +186,7 @@ function. It will reset all variables.
```
[line: 117](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L117)
[line: 118](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L118)
### http.isClientError()
......@@ -186,7 +198,7 @@ no params
```
[line: 555](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L555)
[line: 563](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L563)
### http.isError()
......@@ -198,7 +210,7 @@ no params
```
[line: 544](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L544)
[line: 552](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L552)
### http.isOk()
......@@ -215,7 +227,7 @@ no params
```
[line: 522](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L522)
[line: 530](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L530)
### http.isRedirect()
......@@ -227,7 +239,7 @@ no params
```
[line: 533](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L533)
[line: 541](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L541)
### http.isServerError()
......@@ -239,7 +251,7 @@ no params
```
[line: 566](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L566)
[line: 574](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L574)
### http.loadcfg()
......@@ -265,7 +277,7 @@ The function will then set the "internal" vars
```
[line: 285](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L285)
[line: 293](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L293)
### http.makeRequest()
......@@ -287,7 +299,7 @@ This function does the following:
```
[line: 169](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L169)
[line: 173](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L173)
### http.quit()
......@@ -309,7 +321,7 @@ no params
```
[line: 252](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L252)
[line: 260](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L260)
### http.responseDelete()
......@@ -322,7 +334,7 @@ AUTOFILE functionality
```
[line: 653](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L653)
[line: 661](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L661)
### http.responseExport()
......@@ -334,7 +346,7 @@ Export response to a file
```
[line: 611](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L611)
[line: 619](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L619)
### http.responseImport()
......@@ -346,7 +358,7 @@ Import a former response from a file
```
[line: 629](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L629)
[line: 637](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L637)
### http.setAccept()
......@@ -358,7 +370,7 @@ set Accept request header and override default
```
[line: 693](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L693)
[line: 712](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L712)
### http.setAuth()
......@@ -371,7 +383,7 @@ Without given parameter, authentication is removed
```
[line: 709](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L709)
[line: 728](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L728)
### http.setAuthorization()
......@@ -385,7 +397,7 @@ Without given parameter, authorization is removed
```
[line: 726](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L726)
[line: 745](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L745)
### http.setBaseUrl()
......@@ -398,7 +410,7 @@ Remark: Then use http.setUrl to complet the url to request
```
[line: 753](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L753)
[line: 772](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L772)
### http.setBody()
......@@ -410,7 +422,19 @@ Set body to send for PUTs and POSTs
```
[line: 741](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L741)
[line: 760](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L760)
### http.setCA()
```txt
set and unset CA cert file to use
🔹 param string optional: filename to use; no value to disable cafile
```
[line: 784](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L784)
### http.setCacheFile()
......@@ -422,7 +446,7 @@ Set cache file
```
[line: 831](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L831)
[line: 873](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L873)
### http.setCacheTtl()
......@@ -434,7 +458,7 @@ Set cache ttl in seconds
```
[line: 820](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L820)
[line: 862](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L862)
### http.setDebug()
......@@ -446,11 +470,11 @@ Enable or disable debug mode
```
[line: 765](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L765)
[line: 795](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L795)
### http.setDocs()
[line: 769](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L769)
[line: 801](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L801)
### http.setFullUrl()
......@@ -462,7 +486,19 @@ Set a full url to request
```
[line: 791](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L791)
[line: 833](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L833)
### http.setInsecure()
```txt
Allow and disallow insecure connections
🔹 param string optional: 1 to enable insecure flag; no value to disable insecure flag
```
[line: 811](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L811)
### http.setMethod()
......@@ -474,7 +510,7 @@ Set the method to use; GET|POST|PUT|DELETE|...
```
[line: 780](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L780)
[line: 822](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L822)
### http.setUrl()
......@@ -486,7 +522,7 @@ Complete the base url
```
[line: 806](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/rest-api-client.sh#L806)
[line: 848](https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/http.class.sh#L848)
- - -
Generated with [Bashdoc](https://github.com/axelhahn/bashdoc) v0.6
This diff is collapsed.
This diff is collapsed.
......@@ -4,7 +4,7 @@ cd "$( dirname "$0" )" || exit
BASHDOC=/home/axel/data/opensource/bash/bashdoc/bashdoc2md.sh
SOURCES=../rest-api-client.sh
SOURCES=../http.class.sh
TARGETBASE=../docs/99_Functions
REPO=https://git-repo.iml.unibe.ch/iml-open-source/bash-rest-api-client/-/blob/master/
......
......@@ -11,7 +11,7 @@
cd "$( dirname "$0" )" || exit
# shellcheck source=../rest-api-client.sh
. ../rest-api-client.sh
. ../http.class.sh
# shellcheck source=color.class.sh
. color.class.sh
......@@ -53,7 +53,7 @@ EOH
color.reset
echo "We need to initialize the client with 'http.init' before each new request."
echo "We need to initialize the client with 'http.init' before a new request."
echo
color.echo "green" "> http.init"
http.init
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment