@mc-proto/revel-api-client
v0.4.0
Published
[![pipeline status](https://gitlab.com/revelsystems/microservices/revel-api-client/badges/master/pipeline.svg)](https://gitlab.com/revelsystems/microservices/revel-api-client/commits/master) [![coverage report](https://gitlab.com/revelsystems/microservice
Downloads
3
Readme
Revel Api Client
You get some data! And you get some data!
A shared api client library that can connect various frontends to api microservices. It contains methods for communicating with our api, methods for getting mock data for api endpoints that may not exist yet, and typescript interfaces to type the data structures used. A client like this should be the universal way of interfacing with our apis via javascript/typescript.
The mocking methods are particularly important, as they allow us to use a frontend first methodology, building out a system of mock data that will allow us to develop a frontend against an api that doesn't exist yet.
You can find up to date documentation here.
Installation & Usage
Add the library to your npm project
npm i --save @mc-proto/revel-api-client
Import the methods you need
import { fetchNavigation } from '@mc-proto/revel-api-client';
fetchNavigation()
.then((directory) => {
// Do cool stuff
})
Optionally provide a custom transform function to mutate the api response data or don't and a default transform function will be used. Also feel free to create a merge request to add additional transforms to api client.
Local Development
Building and local development are handled by Rollup, with linting from Eslint. To develop locally just clone the repo, npm install
and run some cli commands.
npm run dev
: Compiles with rollup and rebuilds on change. Linting will be displayed in the console with every build but the linter will not throw fatal errors.npm run test
: invokes mocha test runner. 100% code coverage threshold required for tests to pass.npm run build
: Compiles with rollup and lints. Linting errors and warnings will be fatal, breaking the build.
CI/CD
Gitlab will generate a build pipeline for merge requests, commits to valid branch formats and git flow style release tags like 1.2.3
. Linting will run on every build, breaking the build on error or warning. A successful build on a release tag will publish to npm and generate documentation.
Contributing
Create a feature branch in the format 'feature/jira-case' or 'hotfix/jira-case' depending on the task
All api methods for a specific entity should reside in the same directory i.e. /navigation (Please clone this directory as boilerplate)
The test suite requires 100% code coverage