reflect-client
v2.0.1
Published
Make requests to an API built using the [Reflect API](https://github.com/VictorWesterlund/reflect) framework over HTTP with JavaScript.
Downloads
26
Readme
Reflect API client for JavaScript
Make requests to an API built using the Reflect API framework over HTTP with JavaScript.
import { default as Client } from "./reflect-client/Reflect.js";
const api = new Client("https://api.example.com", "myApiKey");
// GET: https://api.example.com/my/endpoint?foo=bar
api.call("my/endpoint").params({foo: bar}).get(); // Returns: Promise<Response>
Supported browsers/environments:
Chrome|Firefox|Safari|NodeJS|Deno --|--|--|--|-- ✅ 80+|✅ 75+|✅ 14.1+|✅ 20.7.0+|✅ 1.37.0+
How to use
Install with npm
npm i reflect-client
Initialize the class
import { Client, Method } from "./reflect-client/Reflect.js"; const api = new Client(base_url: string, api_key: string|null = null);
Example
const api = new Client("https://api.example.com", "exampleApiKey");
Make API requests
Defining an endpoint
Start a new API call by chaining the call()
method and passing it an endpoint string
Client.call(endpoint: string): ThisType<this>
Example:
api.call("my/endpoint")
(Optional) Search Parameters
Pass an object of keys and values to params()
, and chain it anywhere before a get()
, patch()
, put()
, post()
, or delete()
request to set search parameters for the current request.
Client.params(params: object): ThisType<this>
Example:
// https://api.example.com/my/endpoint?key1=value1&key2=value2
api.call("my/endpoint")
.params({
key1: "value1",
key2: "value2"
});
GET
Request
Make a GET
request by chaining get()
at the end of a method chain. This method will return a Response
object.
Client.get(): Promise<Response>
Example:
api.call("my/endpoint").params({foo: "bar"}).get();
POST
Request
Make a POST
request by chaining post()
at the end of a method chain. This method will return a Response
object.
Pass post()
a stringifiable object of key, value pairs to be sent as an application/json
-encoded request body to the endpoint.
Client.post(payload: object|null = null): Promise<Response>
Example:
api.call("my/endpoint").params({foo: "bar"}).post({baz: "qux"});
PATCH
Request
Make a PATCH
request by chaining patch()
at the end of a method chain. This method will return a Response
object.
Pass patch()
a stringifiable object of key, value pairs to be sent as an application/json
-encoded request body to the endpoint.
Client.patch(payload: object|null = null): Promise<Response>
Example:
api.call("my/endpoint").params({foo: "bar"}).patch({baz: "qux"});
PUT
Request
Make a PUT
request by chaining put()
at the end of a method chain. This method will return a Response
object.
Pass put()
a stringifiable object of key, value pairs to be sent as an application/json
-encoded request body to the endpoint.
Client.put(payload: object|null = null): Promise<Response>
Example:
api.call("my/endpoint").params({foo: "bar"}).put({baz: "qux"});
DELETE
Request
Make a DELETE
request by chaining delete()
at the end of a method chain. This method will return a Response
object.
Pass delete()
a stringifiable object of key, value pairs to be sent as an application/json
-encoded request body to the endpoint.
Client.delete(payload: object|null = null): Promise<Response>
Example:
api.call("my/endpoint").params({foo: "bar"}).delete();
OPTIONS
Request
Make an OPTIONS
request by chaining get()
at the end of a method chain. This method will return a Response
object.
Use this method to query Reflect for available request methods.
Client.options(): Promise<Response>
Example:
api.call("my/endpoint").options();
Development
NodeJS required version: 20.7.0+
TypeScript required version: 5.2.2+