axios-restful
v1.0.0
Published
A builder for RESTful API Resources using axios
Downloads
4
Readme
axios-restful
Integration
This code is designed to work with axios configurations. Axios will be imported automatically and does not need extra imports within your project.
Methods
#constructor(options = {})
The constructor takes a set of arguments. The following options can be specified:
| Parameter | Type | Required | Default Value | |-------------------------|--------------------|----------|----------------------------------------------------------------------| | headers | JSON Object | no | { 'Accept': 'application/json', 'Content-Type': 'application/json' } | | requestInterceptors | Array of Functions | no | [] | | responseTransformations | Array of Functions | no | [] | | retries | Number | no | 1 | | updateType | String | no | 'PUT' | | ssl | Boolean | no | false | | domain | String | no | 'localhost' |
Note that some configurations are suggested, such as ssl
and domain
for full functionality beyond testing locally.
#addResource(resourceName, namespace = undefined)
This method adds the following routes for a specified resource:
| Function | Type | Endpoint | |----------|-----------|----------| | all | GET | / | | find | GET | /:id | | update | PUT/PATCH | /:id | | create | POST | / | | delete | DELETE | /:id |
These functions will be added to the specified namespace
if provided. The namespace
uses Lodash style dot notation to specify the nesting. An example of this would be foo.bar
would create the above methods in { "foo": { "bar": {...} } }
.
#addRoute(type, name, endpoint = undefined, namespace = undefined)
This method will generate an endpoint within a specified namespace.
| Parameter | Required | Default Behaviour | |-----------|----------|-----------------------------------------------------------------------| | type | yes | Specifies the type of request | | name | yes | Specifies the name of the resource | | endpoint | no | If the endpoint is not specified it will use the name as the endpoint | | namespace | no | If the namespace is not provided it will be added at the root level |
#axios()
Returns axios
as used by this package.
#routes()
Returns a JSON Object with functions for each of the routes. The routes would be specified by #addResource
and #addRoute
.