/reflect-client-js

PHP module for communicating with an API built with Reflect over HTTP

Primary LanguageTypeScriptMozilla Public License 2.0MPL-2.0

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-icon
Chrome
Firefox_logo,_2019 svg
Firefox
Safari_browser_logo svg
Safari
image
NodeJS
deno
Deno
✅ 80+ ✅ 75+ ✅ 14.1+ ✅ 20.7.0+ ✅ 1.37.0+

How to use

  1. Install with npm

    npm i reflect-client
    
  2. 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+