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>
Chrome |
Firefox |
Safari |
NodeJS |
Deno |
---|---|---|---|---|
✅ 80+ | ✅ 75+ | ✅ 14.1+ | ✅ 20.7.0+ | ✅ 1.37.0+ |
-
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");
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")
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"
});
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();
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"});
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"});
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"});
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();
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();
NodeJS required version: 20.7.0+
TypeScript required version: 5.2.2+