@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-core
is no longer required. It has been added to this package- Switch to
lodash/merge
for merging config - Change how args are passed to
AvApi
constructor - Require a single version of
axios
instead of a range - Update to use
async/await
where 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
AvMicroserviceApi
AvProxyApi
AvCodesApi
AvDisclaimersApi
AvFilesApi
AvFilesDeliveryApi
AvLogMessagesApi
AvLogMessagesApiV2
AvNavigationApi
AvNotificationApi
AvOrganizationsApi
AvPdfApi
AvPdfMicroserviceApi
AvPermissionsApi
AvProvidersApi
AvRegionsApi
AvRouteConfigurationsApi
AvSettingsApi
AvSlotMachineApi
AvSpacesApi
AvTelemetryApi
AvUserApi
AvUserPermissionsApi
AvWebQLApi
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';
const MyApi = new AvApi({ name: 'claims' });
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();