README
@availity/api-axios
A package wrapping axios to help fetch data inside the Availity Portal
What's new in version 6?
If you are looking for the old docs you can find them here
@availity/api-coreis no longer required. It has been added to this package- Switch to
lodash/mergefor merging config - Change how args are passed to
AvApiconstructor - Require a single version of
axiosinstead of a range - Update to use
async/awaitwhere applicable
Install
NPM
npm install @availity/api-axios axios
Yarn
yarn add @availity/api-axios axios
Documentation
Check out more documentation at availity.github.io
Available Resources
This library exports several resources other than the AvApi class. There are several available classes which extend AvApi or AvMicroserviceApi. They offer the benefit of having pre-defined urls, and some even have methods available for easier data fetching.
The class for each resource is exported with a capital A while the instance is exported with a lowercase a. For example, AvUserApi vs avUserApi. If you need to extend the functionality of the resource then we recommend using the class. Otherwise, we recommend using the instance.
Details about each api can be found here
AvMicroserviceApiAvProxyApiAvCodesApiAvDisclaimersApiAvFilesApiAvFilesDeliveryApiAvLogMessagesApiAvLogMessagesApiV2AvNavigationApiAvNotificationApiAvOrganizationsApiAvPdfApiAvPermissionsApiAvProvidersApiAvRegionsApiAvSettingsApiAvSlotMachineApiAvSpacesApiAvUserApiAvUserPermissionsApiAvWebQLApi
Usage
Extending AvApi
Create new API definitions by extending AvApi.
import AvApi from '@availity/api-axios';
class AvExampleResource extends AvApi {
constructor() {
super({
name: 'exampleApi',
});
}
}
export const avExampleResource = new AvExampleResource();
export default AvExampleResource;
Creating an instance of your api
You can use AvApi to create a new instance that will make connecting to an endpoint much easier
import AvApi from '@availity/api-axios';
// Passing in claims as the name here means the url
// will get set to /api/v1/claims
// Now we can use the available functions to hit that url
const MyApi = new AvApi({ name: 'claims' });
// Create a function that will get entry with the id we pass in
// url will be /api/v1/claims/{id}
async function getClaim(id) {
const response = await MyApi.get(id);
return response.data;
}
Using a pre-defined resource
Some of the pre-defined classes already have functions available to help make fetching data easier. One example is avUserApi. It has a method me which will fetch the currently logged in user
import { avUserApi } from '@availity/api-axios';
async function getUser() {
const user = await avUserApi.me();
return user;
}
Creating Proxy API Definitions
Create new API definitions by extending AvProxyApi. Extending AvProxyApi provides services the behaviors described in @api-core/README#features as well as building the url to match your tenant's proxy REST conventions.
import { AvProxyApi } from '@availity/api-axios';
class AvExampleResource extends AvProxyApi {
constructor() {
super({
tenant: 'myhealthplan',
name: 'patients',
});
}
}
export default new AvExampleResource();