anl 26.106.0 → 26.107.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ar.md +300 -37
- package/README.es.md +299 -36
- package/README.fr.md +354 -36
- package/README.jp.md +246 -15
- package/README.md +262 -29
- package/README.ru.md +246 -15
- package/README.zh.md +289 -50
- package/lib/package.json.js +1 -1
- package/lib/src/build-type/core/get-data.js +1 -1
- package/lib/src/build-type/core/path.js +1 -1
- package/lib/src/build-type/index.js +1 -1
- package/package.json +1 -1
- package/lib/data/openapi.json.js +0 -1
package/README.fr.md
CHANGED
|
@@ -106,32 +106,30 @@ $ anl type
|
|
|
106
106
|
"saveApiListFolderPath": "apps/api/",
|
|
107
107
|
"saveEnumFolderPath": "apps/enums",
|
|
108
108
|
"importEnumPath": "../../enums",
|
|
109
|
-
"swaggerServers": {
|
|
110
|
-
"url": "https://generator3.swagger.io/openapi2.json",
|
|
111
|
-
"apiListFileName": "index.ts",
|
|
112
|
-
"publicPrefix": "api",
|
|
113
|
-
"headers": {}
|
|
114
|
-
},
|
|
115
109
|
"requestMethodsImportPath": "./fetch",
|
|
116
110
|
"dataLevel": "serve",
|
|
111
|
+
"parameterSeparator": "_",
|
|
117
112
|
"formatting": {
|
|
118
113
|
"indentation": "\t",
|
|
119
114
|
"lineEnding": "\n"
|
|
120
115
|
},
|
|
121
|
-
"
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
116
|
+
"swaggerServers": {
|
|
117
|
+
"url": "https://generator3.swagger.io/openapi2.json",
|
|
118
|
+
"apiListFileName": "index.ts",
|
|
119
|
+
"publicPrefix": "/api",
|
|
120
|
+
"pathPrefix": "/gateway",
|
|
121
|
+
"dataLevel": "serve",
|
|
122
|
+
"parameterSeparator": "_",
|
|
123
|
+
"headers": {
|
|
124
|
+
"Authorization": "Bearer token"
|
|
125
|
+
},
|
|
126
|
+
"includeInterface": [
|
|
127
|
+
{
|
|
128
|
+
"path": "/api/user",
|
|
129
|
+
"method": "get"
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
},
|
|
135
133
|
"enmuConfig": {
|
|
136
134
|
"erasableSyntaxOnly": false,
|
|
137
135
|
"varnames": "enum-varnames",
|
|
@@ -164,12 +162,22 @@ $ anl type
|
|
|
164
162
|
{
|
|
165
163
|
"url": "https://generator3.swagger.io/openapi1.json",
|
|
166
164
|
"apiListFileName": "op.ts",
|
|
167
|
-
"
|
|
165
|
+
"pathPrefix": "/forward",
|
|
166
|
+
"dataLevel": "serve",
|
|
167
|
+
"parameterSeparator": "_",
|
|
168
|
+
"headers": {},
|
|
169
|
+
"includeInterface": [
|
|
170
|
+
{
|
|
171
|
+
"path": "/op/trade/order/queryPage",
|
|
172
|
+
"method": "post"
|
|
173
|
+
}
|
|
174
|
+
]
|
|
168
175
|
},
|
|
169
176
|
{
|
|
170
177
|
"url": "https://generator3.swagger.io/openapi2.json",
|
|
171
178
|
"apiListFileName": "index.ts",
|
|
172
179
|
"publicPrefix": "/api",
|
|
180
|
+
"dataLevel": "data",
|
|
173
181
|
"headers": {}
|
|
174
182
|
}
|
|
175
183
|
]
|
|
@@ -186,22 +194,31 @@ $ anl type
|
|
|
186
194
|
| importEnumPath | string | Oui | Chemin d'import enum (chemin des fichiers enum référencés dans apps/types/models/\*.ts) |
|
|
187
195
|
| swaggerJsonUrl | string | Non | Adresse du document Swagger JSON (migré vers `swaggerServers`, conservé pour compatibilité avec les anciennes configurations) **Ce champ sera supprimé dans les versions futures** |
|
|
188
196
|
| swaggerServers | object \| Array<object> | Non | Configuration des serveurs Swagger. Un seul serveur peut être directement rempli comme objet, plusieurs serveurs utilisent un tableau. Chaque serveur peut configurer `url`, `publicPrefix`, `apiListFileName`, `headers`<br />Ce champ correspond aux exemples de configuration d'un seul serveur Swagger et de plusieurs serveurs Swagger, veuillez faire défiler vers le haut pour voir |
|
|
189
|
-
| swaggerServers[].url
|
|
190
|
-
| swaggerServers[].publicPrefix
|
|
197
|
+
| swaggerServers[].url | string | Oui | Adresse du document Swagger JSON |
|
|
198
|
+
| swaggerServers[].publicPrefix | string | Non | Préfixe commun sur le chemin URL, par exemple : api/users, api/users/{id}, api est le préfixe commun |
|
|
199
|
+
| swaggerServers[].pathPrefix | string | Non | Préfixe de chemin de requête (peut être compris comme nom de module), sera ajouté automatiquement devant chaque chemin de requête API.<br />Par exemple : lorsque `pathPrefix: "/forward"`,<br />`/publicPrefix/pathPrefix/user` devient `/api/forward/user` |
|
|
191
200
|
| swaggerServers[].apiListFileName | string | Non | Nom du fichier de liste API, par défaut `index.ts`. Lors de l'utilisation de plusieurs serveurs, le nom de fichier de chaque serveur doit être unique |
|
|
192
|
-
| swaggerServers[].headers
|
|
193
|
-
|
|
|
194
|
-
|
|
|
195
|
-
|
|
|
201
|
+
| swaggerServers[].headers | object | Non | Configuration des en-têtes de requête pour ce serveur |
|
|
202
|
+
| swaggerServers[].dataLevel | 'data' \| 'serve' \| 'axios' | Non | Niveau de données de retour d'interface pour ce serveur. Si non défini, utilise la configuration globale `dataLevel` |
|
|
203
|
+
| swaggerServers[].parameterSeparator | '$' \| '\_' | Non | Séparateur utilisé lors de la génération des noms d'API et des noms de type pour ce serveur. Si non défini, utilise la configuration globale `parameterSeparator` |
|
|
204
|
+
| swaggerServers[].includeInterface | Array<{path: string, method: string}> | Non | Liste des interfaces incluses pour ce serveur. Si non définie, utilise la configuration globale `includeInterface` |
|
|
205
|
+
| swaggerServers[].excludeInterface | Array<{path: string, method: string}> | Non | Liste des interfaces exclues pour ce serveur. Si non définie, utilise la configuration globale `excludeInterface` |
|
|
206
|
+
| requestMethodsImportPath | string | Oui | Chemin d'import des méthodes de requête |
|
|
207
|
+
| dataLevel | 'data' \| 'serve' \| 'axios' | Non | Configuration globale du niveau de données de retour d'interface, valeur par défaut : `'serve'`. Chaque serveur peut le configurer individuellement pour remplacer |
|
|
208
|
+
| formatting | object | Non | Configuration du formatage du code |
|
|
209
|
+
| formatting.indentation | string | Non | Caractère d'indentation du code, par exemple : `"\t"` ou `" "` (deux espaces) |
|
|
210
|
+
| formatting.lineEnding | string | Non | Caractère de saut de ligne, par exemple : `"\n"` (LF) ou `"\r\n"` (CRLF) |
|
|
196
211
|
| headers | object | Non | Configuration des en-têtes de requête (migré vers `swaggerServers`, conservé pour compatibilité avec les anciennes configurations) |
|
|
197
|
-
| includeInterface
|
|
198
|
-
| excludeInterface
|
|
199
|
-
| publicPrefix
|
|
200
|
-
|
|
|
201
|
-
|
|
|
202
|
-
|
|
|
203
|
-
| enmuConfig.
|
|
204
|
-
| enmuConfig.
|
|
212
|
+
| includeInterface | Array<{path: string, method: string}> | Non | Interfaces incluses globalement : Le fichier de liste d'interfaces spécifié par `saveApiListFolderPath` ne contiendra que les interfaces de la liste, mutuellement exclusif avec `excludeInterface`. Chaque serveur peut le configurer individuellement pour remplacer |
|
|
213
|
+
| excludeInterface | Array<{path: string, method: string}> | Non | Interfaces exclues globalement : Le fichier de liste d'interfaces spécifié par `saveApiListFolderPath` ne contiendra pas les interfaces de cette liste, mutuellement exclusif avec `includeInterface`. Chaque serveur peut le configurer individuellement pour remplacer |
|
|
214
|
+
| publicPrefix | string | Non | Préfixe commun global sur le chemin URL (migré vers `swaggerServers`, conservé pour compatibilité avec les anciennes configurations) |
|
|
215
|
+
| pathPrefix | string | Non | Préfixe de chemin de requête global (chaque serveur peut le configurer individuellement pour remplacer) |
|
|
216
|
+
| apiListFileName | string | Non | Nom du fichier de liste API global, par défaut `index.ts` (migré vers `swaggerServers`, conservé pour compatibilité avec les anciennes configurations) |
|
|
217
|
+
| enmuConfig | object | Oui | Objet de configuration d'énumération |
|
|
218
|
+
| enmuConfig.erasableSyntaxOnly | boolean | Oui | Doit être cohérent avec l'option `compilerOptions.erasableSyntaxOnly` de tsconfig.json. Si `true`, génère un objet const au lieu d'un enum (syntaxe de type uniquement). Valeur par défaut : `false` |
|
|
219
|
+
| enmuConfig.varnames | string | Non | Nom du champ dans le schéma Swagger contenant les noms personnalisés des membres d'enum. Valeur par défaut : `enum-varnames`. |
|
|
220
|
+
| enmuConfig.comment | string | Non | Nom du champ dans le schéma Swagger contenant les descriptions des membres d'enum (utilisé pour générer des commentaires). Valeur par défaut : `enum-descriptions`. |
|
|
221
|
+
| parameterSeparator | '$' \| '\_' | Non | Séparateur utilisé globalement entre les segments de chemin et les paramètres lors de la génération des noms d'API et des noms de type. Par exemple, `/users/{userId}/posts` avec le séparateur `'_'` génère `users_userId_posts_GET`. Valeur par défaut : `'_'`. Chaque serveur peut le configurer individuellement pour remplacer |
|
|
205
222
|
|
|
206
223
|
#### Relation entre les éléments de configuration et les fichiers générés
|
|
207
224
|
|
|
@@ -255,6 +272,48 @@ export const userDetailGet = (params: UserDetail_GET.Query) => GET<UserDetail_GE
|
|
|
255
272
|
|
|
256
273
|
### Explication des fonctionnalités
|
|
257
274
|
|
|
275
|
+
#### Priorité de Configuration
|
|
276
|
+
|
|
277
|
+
L'outil prend en charge la configuration globale et la configuration au niveau du serveur, en suivant ces règles de priorité :
|
|
278
|
+
|
|
279
|
+
**Priorité : Configuration au niveau du serveur > Configuration globale > Valeurs par défaut**
|
|
280
|
+
|
|
281
|
+
Les éléments de configuration suivants prennent en charge le remplacement au niveau du serveur de la configuration globale :
|
|
282
|
+
|
|
283
|
+
- `dataLevel` : Niveau de données de retour d'interface
|
|
284
|
+
- `parameterSeparator` : Séparateur pour les noms d'API et les noms de type
|
|
285
|
+
- `includeInterface` : Liste des interfaces incluses
|
|
286
|
+
- `excludeInterface` : Liste des interfaces exclues
|
|
287
|
+
- `pathPrefix` : Préfixe de chemin de requête
|
|
288
|
+
- `publicPrefix` : Préfixe commun d'URL
|
|
289
|
+
- `headers` : Configuration des en-têtes de requête
|
|
290
|
+
|
|
291
|
+
**Exemple :**
|
|
292
|
+
|
|
293
|
+
```json
|
|
294
|
+
{
|
|
295
|
+
"dataLevel": "serve",
|
|
296
|
+
"parameterSeparator": "_",
|
|
297
|
+
"swaggerServers": [
|
|
298
|
+
{
|
|
299
|
+
"url": "http://api1.example.com/swagger.json",
|
|
300
|
+
"dataLevel": "data",
|
|
301
|
+
"apiListFileName": "api1.ts"
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"url": "http://api2.example.com/swagger.json",
|
|
305
|
+
"apiListFileName": "api2.ts"
|
|
306
|
+
}
|
|
307
|
+
]
|
|
308
|
+
}
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
Dans la configuration ci-dessus :
|
|
312
|
+
|
|
313
|
+
- `api1.ts` utilise `dataLevel: "data"` (configuration au niveau du serveur)
|
|
314
|
+
- `api2.ts` utilise `dataLevel: "serve"` (configuration globale)
|
|
315
|
+
- Les deux serveurs utilisent `parameterSeparator: "_"` (configuration globale)
|
|
316
|
+
|
|
258
317
|
#### Analyse de types
|
|
259
318
|
|
|
260
319
|
- Support de tous les types de données de la spécification OpenAPI 3.0
|
|
@@ -305,6 +364,46 @@ interface User {
|
|
|
305
364
|
}
|
|
306
365
|
```
|
|
307
366
|
|
|
367
|
+
#### Configuration du Niveau de Données (dataLevel)
|
|
368
|
+
|
|
369
|
+
`dataLevel` est utilisé pour configurer le niveau d'extraction des données retournées par l'interface, prend en charge trois options :
|
|
370
|
+
|
|
371
|
+
1. **`'serve'` (valeur par défaut)** : Extrait le champ `data` retourné par le serveur
|
|
372
|
+
|
|
373
|
+
```typescript
|
|
374
|
+
// Retour du serveur : { code: 200, message: 'success', data: { id: 1, name: 'user' } }
|
|
375
|
+
// Retour de la fonction : { id: 1, name: 'user' }
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
2. **`'data'`** : Extrait le champ `data.data` (adapté aux scénarios de data imbriquée)
|
|
379
|
+
|
|
380
|
+
```typescript
|
|
381
|
+
// Retour du serveur : { data: { code: 200, data: { id: 1, name: 'user' } } }
|
|
382
|
+
// Retour de la fonction : { id: 1, name: 'user' }
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
3. **`'axios'`** : Retourne l'objet de réponse axios complet
|
|
386
|
+
```typescript
|
|
387
|
+
// Retour du serveur : { code: 200, message: 'success', data: { id: 1, name: 'user' } }
|
|
388
|
+
// Retour de la fonction : { code: 200, message: 'success', data: { id: 1, name: 'user' } }
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
**Exemple de configuration :**
|
|
392
|
+
|
|
393
|
+
```json
|
|
394
|
+
{
|
|
395
|
+
"dataLevel": "serve",
|
|
396
|
+
"swaggerServers": [
|
|
397
|
+
{
|
|
398
|
+
"url": "http://api1.example.com/swagger.json",
|
|
399
|
+
"dataLevel": "data"
|
|
400
|
+
}
|
|
401
|
+
]
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
> **Note** : La configuration `dataLevel` au niveau du serveur remplacera la configuration globale.
|
|
406
|
+
|
|
308
407
|
#### Téléchargement de fichiers
|
|
309
408
|
|
|
310
409
|
Lorsqu'un type de téléchargement de fichier est détecté, les en-têtes de requête correspondants sont automatiquement ajoutés :
|
|
@@ -316,6 +415,33 @@ export const uploadFile = (params: UploadFile.Body) =>
|
|
|
316
415
|
});
|
|
317
416
|
```
|
|
318
417
|
|
|
418
|
+
#### Formatage du Code
|
|
419
|
+
|
|
420
|
+
L'outil prend en charge des options de formatage de code personnalisées, contrôlées par la configuration `formatting` :
|
|
421
|
+
|
|
422
|
+
**Exemple de configuration :**
|
|
423
|
+
|
|
424
|
+
```json
|
|
425
|
+
{
|
|
426
|
+
"formatting": {
|
|
427
|
+
"indentation": "\t",
|
|
428
|
+
"lineEnding": "\n"
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
**Explication de la configuration :**
|
|
434
|
+
|
|
435
|
+
- `indentation` : Caractère d'indentation du code
|
|
436
|
+
- `"\t"` : Utiliser l'indentation Tab (par défaut)
|
|
437
|
+
- `" "` : Utiliser l'indentation de 2 espaces
|
|
438
|
+
- `" "` : Utiliser l'indentation de 4 espaces
|
|
439
|
+
- `lineEnding` : Type de saut de ligne
|
|
440
|
+
- `"\n"` : LF (style Linux/macOS, recommandé)
|
|
441
|
+
- `"\r\n"` : CRLF (style Windows)
|
|
442
|
+
|
|
443
|
+
**Note :** Si Prettier est configuré dans le projet, le code généré sera automatiquement formaté avec Prettier, et la configuration `formatting` peut être remplacée par Prettier.
|
|
444
|
+
|
|
319
445
|
#### Gestion des erreurs
|
|
320
446
|
|
|
321
447
|
L'outil intègre un mécanisme complet de gestion des erreurs :
|
|
@@ -372,8 +498,88 @@ L'outil prend en charge la configuration de plusieurs serveurs Swagger, chaque s
|
|
|
372
498
|
- Les API des serveurs suivants seront ajoutées dans leurs propres fichiers `apiListFileName`
|
|
373
499
|
- Les définitions de types et les enum seront fusionnées dans un dossier unifié pour éviter les doublons
|
|
374
500
|
|
|
501
|
+
**Configuration au niveau du serveur :**
|
|
502
|
+
|
|
503
|
+
Chaque serveur prend en charge une configuration indépendante des options suivantes. Si non configuré, la configuration globale est utilisée :
|
|
504
|
+
|
|
505
|
+
- `dataLevel` - Niveau de données de retour d'interface
|
|
506
|
+
- `parameterSeparator` - Séparateur pour les noms d'API et les noms de type
|
|
507
|
+
- `includeInterface` - Liste des interfaces incluses
|
|
508
|
+
- `excludeInterface` - Liste des interfaces exclues
|
|
509
|
+
- `pathPrefix` - Préfixe de chemin de requête
|
|
510
|
+
|
|
511
|
+
#### Préfixe de Chemin (pathPrefix)
|
|
512
|
+
|
|
513
|
+
`pathPrefix` est utilisé pour ajouter automatiquement un préfixe devant tous les chemins de requête API, ce qui est particulièrement utile dans les scénarios suivants :
|
|
514
|
+
|
|
515
|
+
1. **Scénario de proxy inverse** : Lorsque le service backend est routé via un proxy inverse
|
|
516
|
+
2. **Gateway d'API** : Ajouter uniformément un préfixe de gateway devant le chemin
|
|
517
|
+
3. **Configuration multi-environnements** : Utiliser différents préfixes de chemin pour différents environnements
|
|
518
|
+
|
|
519
|
+
**Exemple d'utilisation :**
|
|
520
|
+
|
|
521
|
+
```json
|
|
522
|
+
{
|
|
523
|
+
"swaggerServers": [
|
|
524
|
+
{
|
|
525
|
+
"url": "http://api.example.com/swagger.json",
|
|
526
|
+
"pathPrefix": "/forward",
|
|
527
|
+
"apiListFileName": "api.ts"
|
|
528
|
+
}
|
|
529
|
+
]
|
|
530
|
+
}
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
**Effet :**
|
|
534
|
+
|
|
535
|
+
Le chemin `/api/user/list` défini dans Swagger sera généré comme :
|
|
536
|
+
|
|
537
|
+
```typescript
|
|
538
|
+
export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList_GET.Response>('/forward/api/user/list', params);
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
**Différence avec publicPrefix :**
|
|
542
|
+
|
|
543
|
+
- `publicPrefix` : Utilisé pour supprimer le préfixe commun du chemin d'interface (n'affecte que le nom de fonction généré)
|
|
544
|
+
- `pathPrefix` : Utilisé pour ajouter un préfixe devant le chemin de requête réel (affecte l'URL de requête à l'exécution)
|
|
545
|
+
|
|
375
546
|
**Exemple de configuration :**
|
|
376
547
|
|
|
548
|
+
```json
|
|
549
|
+
{
|
|
550
|
+
"swaggerServers": [
|
|
551
|
+
{
|
|
552
|
+
"url": "http://api1.example.com/swagger.json",
|
|
553
|
+
"apiListFileName": "api1.ts",
|
|
554
|
+
"publicPrefix": "/api/v1",
|
|
555
|
+
"pathPrefix": "/forward",
|
|
556
|
+
"dataLevel": "serve",
|
|
557
|
+
"parameterSeparator": "_",
|
|
558
|
+
"headers": {
|
|
559
|
+
"Authorization": "Bearer token1"
|
|
560
|
+
},
|
|
561
|
+
"includeInterface": [
|
|
562
|
+
{
|
|
563
|
+
"path": "/api/v1/users",
|
|
564
|
+
"method": "get"
|
|
565
|
+
}
|
|
566
|
+
]
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"url": "http://api2.example.com/swagger.json",
|
|
570
|
+
"apiListFileName": "api2.ts",
|
|
571
|
+
"publicPrefix": "/api/v2",
|
|
572
|
+
"dataLevel": "data",
|
|
573
|
+
"headers": {
|
|
574
|
+
"Authorization": "Bearer token2"
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
]
|
|
578
|
+
}
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
**Exemple de configuration (ancien format) :**
|
|
582
|
+
|
|
377
583
|
```json
|
|
378
584
|
{
|
|
379
585
|
"swaggerServers": [
|
|
@@ -422,10 +628,12 @@ Toutes les méthodes prennent en charge les définitions de types sécurisées p
|
|
|
422
628
|
|
|
423
629
|
1. Assurez-vous que l'adresse du document Swagger JSON est accessible
|
|
424
630
|
2. Les chemins dans le fichier de configuration doivent être relatifs au répertoire racine du projet
|
|
425
|
-
3. Les fichiers générés écraseront les fichiers existants du même nom
|
|
631
|
+
3. Les fichiers générés écraseront les fichiers existants du même nom (mais `config.ts`, `error-message.ts`, `fetch.ts`, `api-type.d.ts` ne seront pas écrasés s'ils existent déjà)
|
|
426
632
|
4. Il est recommandé d'ajouter les fichiers générés au contrôle de version
|
|
427
633
|
5. Lors de l'utilisation de plusieurs serveurs Swagger, assurez-vous que le `apiListFileName` de chaque serveur est unique pour éviter l'écrasement des fichiers
|
|
428
634
|
6. Lors de la configuration de plusieurs serveurs, les définitions de types et les enum seront fusionnées, si différents serveurs ont des types du même nom, des conflits peuvent survenir
|
|
635
|
+
7. La configuration au niveau du serveur (`dataLevel`, `parameterSeparator`, `includeInterface`, `excludeInterface`, `pathPrefix`) remplacera la configuration globale
|
|
636
|
+
8. `includeInterface` et `excludeInterface` ne peuvent pas être configurés simultanément. Si les deux sont configurés, `includeInterface` sera prioritaire
|
|
429
637
|
|
|
430
638
|
### Problèmes courants
|
|
431
639
|
|
|
@@ -437,6 +645,116 @@ Toutes les méthodes prennent en charge les définitions de types sécurisées p
|
|
|
437
645
|
- Vérifiez que la configuration requestMethodsImportPath est correcte
|
|
438
646
|
- Confirmez l'existence du fichier de méthodes de requête
|
|
439
647
|
|
|
648
|
+
3. **Quand utiliser `pathPrefix` ?**
|
|
649
|
+
- Lorsque votre API doit être accessible via un proxy inverse ou une passerelle
|
|
650
|
+
- Par exemple : Swagger définit `/api/user`, mais la requête réelle doit être `/gateway/api/user`
|
|
651
|
+
- Il suffit de définir `pathPrefix: "/gateway"`
|
|
652
|
+
|
|
653
|
+
4. **Quelle est la différence entre `publicPrefix` et `pathPrefix` ?**
|
|
654
|
+
- `publicPrefix` : Supprime le préfixe du chemin d'interface, n'affecte que le nom de fonction généré
|
|
655
|
+
- Par exemple : `/api/user/list` après suppression de `/api`, le nom de fonction est `userListGet`
|
|
656
|
+
- `pathPrefix` : Ajoute un préfixe devant le chemin de requête, affecte l'URL de requête réelle
|
|
657
|
+
- Par exemple : `/api/user/list` après ajout de `/forward`, l'URL de requête est `/forward/api/user/list`
|
|
658
|
+
|
|
659
|
+
5. **Comment configurer différents `dataLevel` pour plusieurs serveurs ?**
|
|
660
|
+
|
|
661
|
+
```json
|
|
662
|
+
{
|
|
663
|
+
"dataLevel": "serve",
|
|
664
|
+
"swaggerServers": [
|
|
665
|
+
{
|
|
666
|
+
"url": "http://old-api.com/swagger.json",
|
|
667
|
+
"dataLevel": "axios",
|
|
668
|
+
"apiListFileName": "old-api.ts"
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"url": "http://new-api.com/swagger.json",
|
|
672
|
+
"apiListFileName": "new-api.ts"
|
|
673
|
+
}
|
|
674
|
+
]
|
|
675
|
+
}
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
- `old-api.ts` utilise `dataLevel: "axios"`
|
|
679
|
+
- `new-api.ts` utilise le `dataLevel: "serve"` global
|
|
680
|
+
|
|
681
|
+
6. **Comment générer seulement des interfaces partielles ?**
|
|
682
|
+
- Utilisez la configuration `includeInterface` :
|
|
683
|
+
```json
|
|
684
|
+
{
|
|
685
|
+
"swaggerServers": [
|
|
686
|
+
{
|
|
687
|
+
"url": "http://api.com/swagger.json",
|
|
688
|
+
"includeInterface": [
|
|
689
|
+
{ "path": "/api/user", "method": "get" },
|
|
690
|
+
{ "path": "/api/user/{id}", "method": "post" }
|
|
691
|
+
]
|
|
692
|
+
}
|
|
693
|
+
]
|
|
694
|
+
}
|
|
695
|
+
```
|
|
696
|
+
- Ou utilisez `excludeInterface` pour exclure les interfaces non désirées
|
|
697
|
+
|
|
698
|
+
7. **Que faire si les fichiers générés ont été écrasés ?**
|
|
699
|
+
- Les fichiers `config.ts`, `error-message.ts`, `fetch.ts`, `api-type.d.ts` ne sont générés que la première fois s'ils n'existent pas
|
|
700
|
+
- Les fichiers de liste API et les fichiers de types sont régénérés à chaque fois
|
|
701
|
+
- Il est recommandé d'inclure les fichiers générés dans le contrôle de version pour faciliter la révision des modifications
|
|
702
|
+
|
|
703
|
+
3. **Quand utiliser `pathPrefix` ?**
|
|
704
|
+
- Lorsque votre API doit être accessible via un proxy inverse ou une passerelle
|
|
705
|
+
- Par exemple : Swagger définit `/api/user`, mais la requête réelle doit être `/gateway/api/user`
|
|
706
|
+
- Il suffit de définir `pathPrefix: "/gateway"`
|
|
707
|
+
|
|
708
|
+
4. **Quelle est la différence entre `publicPrefix` et `pathPrefix` ?**
|
|
709
|
+
- `publicPrefix` : Supprime le préfixe du chemin d'interface, n'affecte que le nom de fonction généré
|
|
710
|
+
- Par exemple : `/api/user/list` après suppression de `/api`, le nom de fonction est `userListGet`
|
|
711
|
+
- `pathPrefix` : Ajoute un préfixe devant le chemin de requête, affecte l'URL de requête réelle
|
|
712
|
+
- Par exemple : `/api/user/list` après ajout de `/forward`, l'URL de requête est `/forward/api/user/list`
|
|
713
|
+
|
|
714
|
+
5. **Comment configurer différents `dataLevel` pour plusieurs serveurs ?**
|
|
715
|
+
|
|
716
|
+
```json
|
|
717
|
+
{
|
|
718
|
+
"dataLevel": "serve",
|
|
719
|
+
"swaggerServers": [
|
|
720
|
+
{
|
|
721
|
+
"url": "http://old-api.com/swagger.json",
|
|
722
|
+
"dataLevel": "axios",
|
|
723
|
+
"apiListFileName": "old-api.ts"
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
"url": "http://new-api.com/swagger.json",
|
|
727
|
+
"apiListFileName": "new-api.ts"
|
|
728
|
+
}
|
|
729
|
+
]
|
|
730
|
+
}
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
- `old-api.ts` utilise `dataLevel: "axios"`
|
|
734
|
+
- `new-api.ts` utilise le `dataLevel: "serve"` global
|
|
735
|
+
|
|
736
|
+
6. **Comment générer seulement des interfaces partielles ?**
|
|
737
|
+
- Utilisez la configuration `includeInterface` :
|
|
738
|
+
```json
|
|
739
|
+
{
|
|
740
|
+
"swaggerServers": [
|
|
741
|
+
{
|
|
742
|
+
"url": "http://api.com/swagger.json",
|
|
743
|
+
"includeInterface": [
|
|
744
|
+
{ "path": "/api/user", "method": "get" },
|
|
745
|
+
{ "path": "/api/user/{id}", "method": "post" }
|
|
746
|
+
]
|
|
747
|
+
}
|
|
748
|
+
]
|
|
749
|
+
}
|
|
750
|
+
```
|
|
751
|
+
- Ou utilisez `excludeInterface` pour exclure les interfaces non désirées
|
|
752
|
+
|
|
753
|
+
7. **Que faire si les fichiers générés ont été écrasés ?**
|
|
754
|
+
- Les fichiers `config.ts`, `error-message.ts`, `fetch.ts`, `api-type.d.ts` ne sont générés que la première fois s'ils n'existent pas
|
|
755
|
+
- Les fichiers de liste API et les fichiers de types sont régénérés à chaque fois
|
|
756
|
+
- Il est recommandé d'inclure les fichiers générés dans le contrôle de version pour faciliter la révision des modifications
|
|
757
|
+
|
|
440
758
|
# Guide d'utilisation de la commande `anl lint`
|
|
441
759
|
|
|
442
760
|
> Fournit une fonctionnalité de configuration en un clic pour divers outils lint de projets frontend, incluant :
|