@availity/api-axios
TypeScript icon, indicating that this package has built-in type declarations

8.0.7 • Public • Published

@availity/api-axios

A package wrapping axios to help fetch data inside the Availity Portal

Version NPM Downloads Dependecy Status

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';

// 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();

Readme

Keywords

Package Sidebar

Install

npm i @availity/api-axios

Weekly Downloads

405

Version

8.0.7

License

MIT

Unpacked Size

197 kB

Total Files

44

Last publish

Collaborators

  • lauroxx
  • dznjudo
  • availity-cicd-bot
  • azeigler
  • dnoler
  • jselden
  • cbaker1
  • twarner
  • gregmartdotin
  • hnicbaker
  • chrishavekost
  • jordan-a-young