0.0.18 • Published 5 years ago
trivial-api v0.0.18
Trivial API interaction
WARNING alpha version. Do not use!
Very thin utility wrapper around fetch()
. Returns Promise
s.
Current limitations
- Only works with APIs that expect and return JSON.
- Only handles authentication by bearer token, which is sent in headers.
Usage
Typical example:
api.write({ url:url, data:data })
.then(
(response) => { ...success... },
(response) => { ...failure...
throw new api.error("That didn't work!")
}).then((x) => {
...do something with x...
}).catch((e) => {
if (e.isTrivialApiError) {
...this is something you threw above using api.error...
} else {
...some other error...
}
})
By default, api.error()
automatically logs to console.error()
. Silence this by calling it with an object: { message: "...", logging: false }
This object expects keys message
and, optionally, logging
. However, any other key:value pairs can be added too. These can be accessed like so:
let e = new api.error({message: "Some message", someKey: "some value"})
console.log(e.get.someKey)
Certificate errors
If you encounter certificate errors when using Node, you can try setting the environment variable NODE_EXTRA_CA_CERTS
appropriately. This ensures Node is aware of certificates you may be using in your local web-server. For example:
sudo NODE_EXTRA_CA_CERTS=/etc/letsencrypt/live/path-to-your-certificates/chain.pem node your-script.js
This great tidbit comes courtesy of https://www.npmjs.com/package/ssl-root-cas