1.30.0 • Published 2 years ago

@rshb/http v1.30.0

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

РСХБ - HTTP

Библиотека для взаимодействия с API проекта Свой Бизнес.

Использование

import { api } from "@rshb/http/api/monolith";

const fetchClients = async () => {
  try {
    const clientsResponse = await api.clients.clientsList();
  } catch (error) {
    dispatch(setResponseErrorMessage(error?.error?.errors?.[0]?.message));
  }
}

Библиотека учитывает наличие переменных окружения указанных в process.env.API_URL и process.env.MONOLITH_API_URL, значение которых используется в качестве параметра baseUrl в соответствующем HttpClient'е (микросервис / монолит).

Если вам потребовалось использовать отличную от стандартной конфигурацию http-клиента, вы можете импортировать базовый класс Api для создания собственного экземпляра клиента:

import { Api } from "@rshb/http/api/monolith";

const api = new Api({
  baseUrl: "https://custom.base.url.ru"
});

const fetchClients = async () => {
  try {
    const clientsResponse = await api.clients.clientsList();
  } catch (error) {
    dispatch(setResponseErrorMessage(error?.error?.errors?.[0]?.message));
  }
}

Или изменить параметры запроса в момент совершения вызова:

import { api } from "@rshb/http/api/monolith";

const fetchClients = async () => {
  try {
    const clientsResponse = await api.clients.clientsList({}, {
      baseUrl: "https://custom.base.url.ru"
    });
  } catch (error) {
    dispatch(setResponseErrorMessage(error?.error?.errors?.[0]?.message));
  }
}

Генерация API

Для обеспечения типобезопасного взаимодействия с API, мы используем swagger-спецификацию (OpenAPI) версии 2.0 для монолита и версию 3.0 для микросервисов.

Монолит

Для обновления текущей версии API монолита, необходимо обновить содержимое файла спецификации src/api/monolith/swagger.yaml и выполнить команду генерации API yarn generate-monolith-api.

Микросервисы

Для обновления текущей версии API микросервиса, необходимо обновить содержимое файла спецификации src/api/<название микросервиса>/swagger.json и выполнить команду генерации API yarn generate-<название микросервиса>-api.

Для добавления API нового микросервиса необходимо:

  1. Создать одноименную директорию микросервиса в src/api/<название микросервиса>.
  2. Добавить файл спецификации (OpenAPI) в формате json или yaml.
  3. Добавить скрипт генерации API микросервиса в package.json по шаблону generate-<название микросервиса>-api.

Пример создания скрипта генерации API микросервиса:

"generate-<название микросервиса>-api": "sta -p ./src/api/<название микросервиса>/swagger.json -o ./src/api/<название микросервиса> -n index -t ./src/templates && prettier --write ./src/api/<название микросервиса>", где

  • -p ./src/api/<название микросервиса>/swagger.json - путь к файлу спецификации API;
  • -o ./src/api/<название микросервиса> - путь к директории генерируемого файла API;
  • -t ./src/templates - путь к шаблонам генерации API;
  • -n index - имя генерируемого файла API.

Устаревший HttpClient

Для обеспечения обратной совместимости существует возможность использования старой версии http-клиента:

import { GET } from "@rshb/http/client/deprecated";

const fetchClients = async () => {
  try {
    const clientsResponse = await GET("/clients");
  } catch (error) {
    console.log(error);
  }
}

Данный http-клиент является устаревшим и не должен использоваться в новых проектах. После миграции проектов на новую версию, данный клиент будет удален.

1.25.0

2 years ago

1.29.0

2 years ago

1.27.0

2 years ago

1.30.0

2 years ago

1.26.0

2 years ago

1.28.0

2 years ago

1.21.0

2 years ago

1.23.0

2 years ago

1.19.0

2 years ago

1.7.1

2 years ago

1.22.0

2 years ago

1.20.0

2 years ago

1.22.1

2 years ago

1.24.0

2 years ago

1.2.0

2 years ago

1.14.0

2 years ago

1.0.0

2 years ago

1.12.0

2 years ago

1.18.0

2 years ago

1.16.0

2 years ago

0.20.0

2 years ago

1.8.0

2 years ago

1.6.0

2 years ago

1.4.0

2 years ago

0.19.0

2 years ago

0.13.0

2 years ago

0.15.0

2 years ago

0.17.0

2 years ago

0.29.0

2 years ago

0.27.0

2 years ago

0.25.0

2 years ago

0.23.0

2 years ago

1.11.0

2 years ago

1.15.0

2 years ago

1.1.0

2 years ago

1.13.0

2 years ago

1.17.0

2 years ago

0.21.0

2 years ago

1.9.0

2 years ago

1.7.0

2 years ago

1.5.0

2 years ago

1.3.0

2 years ago

0.12.0

2 years ago

0.14.0

2 years ago

0.16.0

2 years ago

0.18.0

2 years ago

0.28.0

2 years ago

0.26.0

2 years ago

0.24.0

2 years ago

0.22.0

2 years ago

1.10.0

2 years ago

0.11.0

2 years ago

0.0.15

3 years ago

0.10.0

2 years ago

0.1.0

3 years ago

0.3.0

2 years ago

0.1.2

2 years ago

0.2.0

2 years ago

0.1.1

3 years ago

0.9.0

2 years ago

0.8.0

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.5.0

2 years ago

0.4.0

2 years ago

0.1.3

2 years ago

0.7.0

2 years ago

0.6.0

2 years ago

0.0.14

3 years ago

0.0.13

3 years ago

0.0.10

3 years ago

0.0.11

3 years ago

0.0.12

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago