Skip to content

Commit 641fcad

Browse files
committed
V0.0.1.2
- Update Documentation
1 parent adcabc1 commit 641fcad

4 files changed

Lines changed: 3048 additions & 0 deletions

File tree

.gitignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Dependencies
2+
/node_modules
3+
4+
5+
# Build output
6+
/dist
7+
8+
9+
# Logs
10+
npm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
14+
# IDEs / Editors
15+
.idea
16+
.vscode
17+
*.suo
18+
*.ntvs*
19+
*.njsproj
20+
*.sln
21+
*.sw?
22+
23+
# Operating System Files
24+
.DS_Store
25+
Thumbs.db

README.fr.md

Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
# @neylorxt/react-api
2+
3+
[English Version](README.md)
4+
5+
**@neylorxt/react-api** est un mini-package léger qui simplifie l'envoi de données avec [Axios](https://axios-http.com/) dans vos projets. Conçu pour être simple et accessible aux débutants.
6+
7+
## 🤔 Pourquoi utiliser React API ?
8+
9+
Quand on débute, interagir avec des serveurs (API) peut sembler compliqué. **React API** a été créé pour vous faciliter la vie :
10+
11+
- **Simple à utiliser** : Des fonctions claires pour chaque besoin (recevoir, envoyer, mettre à jour).
12+
- **Gestion des erreurs simplifiée** : Fini les `try...catch` à rallonge. On vous retourne un objet simple pour savoir si tout s'est bien passé.
13+
- **Standardisé** : Les réponses du serveur sont toujours au même format, facile à traiter.
14+
15+
En gros, vous vous concentrez sur votre application, et **React API** s'occupe de la communication avec le serveur.
16+
17+
18+
## 🚀 Installation
19+
20+
Pour utiliser ce package, vous devez avoir `axios` installé dans votre projet.
21+
22+
```bash
23+
npm install axios
24+
npm install @neylorxt/react-api
25+
26+
ou
27+
28+
npm install axios @neylorxt/react-api
29+
```
30+
31+
## ✨ Comment ça marche ?
32+
33+
### `getData(url, config)`
34+
35+
Pour recevoir (GET) des données.
36+
37+
- **`url`** : L'adresse du serveur.
38+
- **`config`** (optionnel) : Pour passer des paramètres dans l'URL ou des en-têtes. Voir les détails plus bas.
39+
40+
**Exemple :**
41+
42+
```javascript
43+
import { getData } from '@neylorxt/react-api';
44+
45+
const response = await getData('https://api.example.com/posts/1');
46+
if (response.success) {
47+
console.log('Article :', response.data);
48+
} else {
49+
console.error('Erreur :', response.errorMessage);
50+
}
51+
```
52+
53+
### `sendData(url, data, config)`
54+
55+
Pour envoyer (POST) de nouvelles données.
56+
57+
- **`url`** : L'adresse du serveur.
58+
- **`data`** : Les données à créer.
59+
- **`config`** (optionnel) : Configuration Axios.
60+
61+
**Exemple :**
62+
63+
```javascript
64+
import { sendData } from '@neylorxt/react-api';
65+
66+
const newPost = { title: 'Mon super article', content: '...' };
67+
const response = await sendData('https://api.example.com/posts', newPost);
68+
69+
if (response.success) {
70+
console.log('Article créé :', response.data);
71+
}
72+
```
73+
74+
### `updateData(url, data, config)`
75+
76+
Pour mettre à jour (PUT) des données existantes.
77+
78+
- **`url`** : L'adresse du serveur.
79+
- **`data`** : Les données à modifier.
80+
- **`config`** (optionnel) : Configuration Axios.
81+
82+
**Exemple :**
83+
84+
```javascript
85+
import { updateData } from '@neylorxt/react-api';
86+
87+
const updatedPost = { title: 'Mon titre mis à jour' };
88+
const response = await updateData('https://api.example.com/posts/1', updatedPost);
89+
90+
if (response.success) {
91+
console.log('Article mis à jour :', response.data);
92+
}
93+
```
94+
95+
### `sendRequest(url, options)`
96+
97+
C'est la fonction "couteau suisse". Elle peut tout faire !
98+
99+
- **`url`** : L'adresse du serveur (API) que vous voulez appeler.
100+
- **`options`** (optionnel) : Un objet pour configurer votre requête.
101+
- **`method`**: La méthode HTTP (`'get'`, `'post'`, `'put'`, `'delete'`). Par défaut, c'est `'get'`.
102+
- **`data`**: Les données à envoyer (pour POST, PUT).
103+
- **`config`**: La configuration avancée d'Axios.
104+
105+
**Exemple :**
106+
107+
```javascript
108+
import { sendRequest } from '@neylorxt/react-api';
109+
110+
// Requête GET simple
111+
const { data } = await sendRequest('https://api.example.com/users');
112+
113+
// Requête DELETE avec un token d'authentification
114+
const config = {
115+
headers: { Authorization: `Bearer ${votre_token}` }
116+
};
117+
const response = await sendRequest('https://api.example.com/posts/1', {
118+
method: 'delete',
119+
config: config
120+
});
121+
122+
if (response.success) {
123+
console.log('Article supprimé !');
124+
}
125+
```
126+
127+
---
128+
129+
## ⚙️ L'objet `config`
130+
131+
L'objet `config` vous permet de passer des options avancées directement à Axios. Cela vous donne plus de contrôle sur la requête.
132+
133+
Voici les propriétés les plus courantes que vous pouvez utiliser :
134+
135+
| Clé | Type | Description |
136+
| :---------------- | :-------- | :------------------------------------------------------------------------------------------------------------------ |
137+
| `headers` | `object` | Un objet d'en-têtes personnalisés à envoyer (ex: `Authorization`, `Content-Type`). |
138+
| `params` | `object` | Les paramètres d'URL à envoyer avec la requête (ex: pour la pagination ou le tri). |
139+
| `withCredentials` | `boolean` | Indique si les requêtes cross-domaines doivent être effectuées en utilisant des informations d'authentification (cookies). |
140+
| `timeout` | `number` | Le nombre de millisecondes avant qu'une requête n'expire. Si la requête prend plus de temps, elle sera annulée. |
141+
| `responseType` | `string` | Le format des données de la réponse (ex: `'json'`, `'blob'`, `'text'`). Par défaut, `'json'`. |
142+
143+
**Exemple avec `config`:**
144+
145+
```javascript
146+
import { getData } from '@neylorxt/react-api';
147+
148+
const token = 'votre-token-secret';
149+
150+
const config = {
151+
// Définir des en-têtes pour l'authentification
152+
headers: {
153+
Authorization: `Bearer ${token}`
154+
},
155+
// Ajouter des paramètres à l'URL
156+
params: {
157+
page: 2,
158+
limit: 10
159+
},
160+
// Définir un timeout de 5 secondes
161+
timeout: 5000
162+
};
163+
164+
// Ceci effectuera une requête GET vers :
165+
// https://api.example.com/items?page=2&limit=10
166+
const response = await getData("https://api.example.com/items", config);
167+
168+
if (response.success) {
169+
console.log('Éléments :', response.data);
170+
}
171+
```
172+
173+
---
174+
175+
## 📦 Format de la réponse
176+
177+
Toutes les fonctions retournent une promesse avec un objet qui a la même structure :
178+
179+
```javascript
180+
{
181+
success: true, // ou false si ça a échoué
182+
status: 200, // Le code HTTP (200, 404, 500...)
183+
data: { ... }, // Les données reçues du serveur
184+
headers: { ... }, // Les en-têtes de la réponse
185+
// Présent uniquement en cas d'erreur :
186+
errorMessage: 'Erreur réseau...',
187+
errorType: 'NETWORK_ERROR'
188+
}
189+
```
190+
191+
Vous pouvez toujours vérifier la propriété `success` pour déterminer si votre requête a réussi.
192+
193+
## 🤝 Contribuer
194+
195+
Ce projet est open-source. Si vous voulez l'améliorer, n'hésitez pas à ouvrir une *issue* ou une *pull request* sur [GitHub](https://github.com/neylorxt/react-api).
196+
197+
## 📜 Licence
198+
199+
Ce projet est sous licence MIT.

0 commit comments

Comments
 (0)