js-crm-api

Пакет "обертка для работы с API CRM

Usage no npm install needed!

<script type="module">
  import jsCrmApi from 'https://cdn.skypack.dev/js-crm-api';
</script>

README

JS API CRM

Данный пакет предназначен для упрощения и унификации работы с crm api а так же api других сервисов Зарплата.ру.

Создание экземпляра

Создание простого экземпляра класса, который содерждит все доступные методы.

import Api from 'js-crm-api';
const api = (new Api()).createRequest({}).setBaseURL(<URL API>);

Создание "кастомного" экземпляра с содержанием только необходимых методов

import customApi from 'js-crm-api/ApiCustomPlugin';
import moduleA from 'js-crm-api/src/api/Documents'
import moduleB from 'js-crm-api/src/api/Events'
import moduleC from 'js-crm-api/src/api/Profile'

const custom = customApi(moduleA, moduleB, moduleC);
const api = new (custom()).createRequest({}).setBaseURL(<URL API>);

Экземпляр модуля

Каждый экземпляр наследуется от модуля Api, который имеет свойство _request являющийся экземпляром пакета axios и содержит все основные метода данного модуля (post, get, head) ...

Создание нового модуля

В данной папке должны располагаться модули реализующие интерфейс работы с api проекта. Каждый метод возвращает Promise -> response где response обязательно содержит атрибут data В констукторе класса обязательно создается экземпляр Modules/Request.

import Api from '../modules/Api.ts';

class Example extends Api{
  /**
  * Пример класса для работы с api 
  */
  constructor() {
    super();
  }

  /**
  * Пример реализации: 
  * Метод обязательно возвращает Promise объект 
  * Обязательное условие:
  * Название метода должно содержать название модуля
  * 
  * @param parameters
  * @return {Promise}
  * 
  */
  getExampleCurrent(parameters = {}) {
    return this._request.get('/api/v1/example');
  }

}

export default Example;