Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@rshb/http

Package Overview
Dependencies
Maintainers
5
Versions
83
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rshb/http

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

  • 1.21.0
  • unpublished
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
5
Weekly downloads
 
Created
Source

РСХБ - 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-клиент является устаревшим и не должен использоваться в новых проектах. После миграции проектов на новую версию, данный клиент будет удален.

FAQs

Package last updated on 15 Mar 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc