Aller au contenu principal

Http

Ensemble de fonctions liées aux connections API.

info

Les fonctions suivantes dépendent des librairies axios et sentry.

attention

Pour utiliser ces fonctions, il faut avoir défini les variables d'environnement suivantes :

  • VITE_API_URL : URL de l'API
  • VITE_APP_CODE : Code de l'application
  • VITE_APP_ENV : Environnement de l'application

Il faut également initialiser l'instance Axios avec la fonction initHttpAPI.

Types

type TErrorResponse = {
debug?: {
trace: string;
};
status?: number;
data?: {
message?: string;
};
config?: InternalAxiosRequestConfig;
};

type THttpError = {
response?: {
data: {
code?: string;
statusCode?: number;
message?: string;
errors?: { [key: string]: string };
};
};
};

Références

// httpRequest
const httpRequest: AxiosInstance;
// initHttpAPI
const initHttpAPI: () => void;
// getHttpError
const getHttpError: (error?: THttpError) => THttpError['response']['data'] | undefined;
// getHttpErrorMessage
const getHttpErrorMessage: (error?: THttpError) => string | undefined;
// getHttpErrorCode
const getHttpErrorCode: (error?: THttpError) => string | undefined;
// getErrorStatus
const getErrorStatus: (error?: THttpError) => number | undefined;
// getUnprocessableEntityError
const getUnprocessableEntityError: (error?: THttpError) => string;

httpRequest

Permets de réaliser des requêtes HTTP vers une API définie par l'URL VITE_API_URL.

Paramètres

  • Méthode d'instance
    • Requis
    • Méthode HTTP Axios (exemple : 'get'). Voir plus
  • url
    • Requis
    • URL de l'API (exemple : '/users')
  • data
    • Données à envoyer dans la requête (exemple : { id: 1, name: 'John Doe' })
  • config
    • Configuration de la requête (exemple : { headers: { 'Content-Type': 'application/json' } }). Voir plus

Exemples

import { httpRequest } from '@creatic/reactic-utils';

type User = {
id: number;
name: string;
};

const users = await httpRequest.get<User[]>('/users');

// Réponse :
// {
// status: 200,
// data: [
// { id: 1, name: 'John Doe' },
// { id: 2, name: 'Jane Doe' },
// ],
// }
import { httpRequest } from '@creatic/reactic-utils';

type User = {
id: number;
name: string;
};

const newUser = {
name: 'John Doe',
};
const user = await httpRequest.post<User>('/users', newUser);

// Réponse :
// {
// status: 200,
// data: { id: 1, name: 'John Doe' },
// }

initHttpAPI

Initialise l'instance Axios avec les paramètres par défaut.

remarque

Permets de définir les intercepteurs de requêtes et de réponses.

Ces intercepteurs permettent à Sentry de capturer les erreurs et de les envoyer au serveur, ainsi que d'ajouter le token d'authentification dans les headers de chaque requête.

Le token d'authentification est récupéré dans le localStorage grâce à la fonction getAccessTokenKey (token.js).

Exemple

import { initHttpAPI } from '@creatic/reactic-utils';

initHttpAPI();

getHttpError

Permets de récuperer les erreurs retournées par l'API.

Paramètres

  • error
    • Requis
    • L'erreur HTTP retournée par l'API.

Exemple

import { httpRequest, getHttpError } from '@creatic/reactic-utils';

try {
const users = await httpRequest.get('/users');
} catch (error) {
const data = getHttpError(error);

// Réponse :
// {
// code: 'ERR_NOT_FOUND',
// message: 'Not found',
// }
}

getErrorMessage

Permets de récuperer le message d'erreur retourné par l'API.

Paramètres

  • error
    • Requis
    • L'erreur HTTP retournée par l'API.

Exemple

import { httpRequest, getErrorMessage } from '@creatic/reactic-utils';

try {
const users = await httpRequest.get('/users');
} catch (error) {
const message = getErrorMessage(error);

// Réponse :
// 'Not found'
}

getErrorCode

Permets de récuperer le code d'erreur retourné par l'API.

Paramètres

  • error
    • Requis
    • L'erreur HTTP retournée par l'API.

Exemple

import { httpRequest, getErrorCode } from '@creatic/reactic-utils';

try {
const users = await httpRequest.get('/users');
} catch (error) {
const code = getErrorCode(error);

// Réponse :
// 'ERR_NOT_FOUND'
}

getErrorStatus

Permets de récuperer le code d'erreur retourné par l'API.

Paramètres

  • error
    • Requis
    • L'erreur HTTP retournée par l'API.

Exemple

import { httpRequest, getErrorStatus } from '@creatic/reactic-utils';

try {
const users = await httpRequest.get('/users');
} catch (error) {
const status = getErrorStatus(error);

// Réponse :
// 404
}

getUnprocessableEntityError

Permets de récuperer le message d'erreur lorsqu'une requête est mal formée.

Paramètres

  • error
    • Requis
    • L'erreur HTTP retournée par l'API.

Exemple

import { httpRequest, getUnprocessableEntityError } from '@creatic/reactic-utils';

try {
const users = await httpRequest.get('/users');
} catch (error) {
const message = getUnprocessableEntityError(error);

// Réponse :
// 'Une erreur s'est produite'
}