Http
Ensemble de fonctions liées aux connections API.
Pour utiliser ces fonctions, il faut avoir défini les variables d'environnement suivantes :
VITE_API_URL: URL de l'APIVITE_APP_CODE: Code de l'applicationVITE_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' })
- Données à envoyer dans la requête (exemple :
- config
- Configuration de la requête (exemple :
{ headers: { 'Content-Type': 'application/json' } }). Voir plus
- Configuration de la requête (exemple :
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.
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'
}