moot-sdk-browser
v0.0.1
Published
Provider to the moot-interface which interacts with a moot REST API.
Readme
moot-sdk-browser
Function usable as a moot-api provider to the moot-interface which
interacts with a moot REST API.
You'll likely use it like this in your moot app:
// somewhere in the setup of the app
import sdk from 'moot-sdk-browser'
import mannish from 'mannish' // or some other mediator
import fetch from 'whatwg-fetch' // or some other fetch polyfill
const mediator = mannish()
const baseUrl = 'https://your-site.com/api'
mediator.provide('moot-api', sdk({ fetch, baseUrl }))api
The API of this module looks like:
options(Object<>) => callable(Object<>) => Promise<>
It returns a callable function, which returns a promise that resolves when the API fetch is completed.
options(Object<>)
Create an instance of the SDK by calling the default exported funtion with an object containing the following properties:
fetch(function, required): This must be an implementation of fetch, but in practice this has only been tested with thewhatwg-fetchpolyfill implementation.baseUrl(string, required): The base URL to the moot API that fetch requests will go to. This must not have a trailing slash.apiUsesDifferentDomain(boolean, defaultfalse): If the API lives on a different domain, the appropriate CORS options will be set.
callable(Object<>)
Creating an instance of the SDK returns a function which is used to make fetch requests to the API. This callable function takes an object with the following properties:
resource(string, required): The resource identifier without parameters included. E.g./players/:playerIdinstead of/players/abc123.method(string, required): The method to call on this resource, e.g. the normal capitalizes HTTP methods,GET,POST, etc.parameters(object): This key-value map will be used to fill in the resource identifier parameters.filter(object): Filter the results returned from the API using these properties.include(array of strings): Types of resources to include in the API response.fields(object): This key->array map is used to limit the fields included in the API response.body(object): The data passed to the API, e.g. in a POST or PUT request. If this is a JavaScript object, it will be JSON-stringified and the appropriate headers set.files(object): This key->FormData map will upload binary files to the API.
license
This project published and released under the Very Open License.
