anl 26.106.1 → 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/path.js +1 -1
- package/lib/src/build-type/index.js +1 -1
- package/package.json +1 -1
package/README.es.md
CHANGED
|
@@ -104,32 +104,30 @@ $ anl type
|
|
|
104
104
|
"saveApiListFolderPath": "apps/api/",
|
|
105
105
|
"saveEnumFolderPath": "apps/enums",
|
|
106
106
|
"importEnumPath": "../../enums",
|
|
107
|
-
"swaggerServers": {
|
|
108
|
-
"url": "https://generator3.swagger.io/openapi2.json",
|
|
109
|
-
"apiListFileName": "index.ts",
|
|
110
|
-
"publicPrefix": "api",
|
|
111
|
-
"headers": {}
|
|
112
|
-
},
|
|
113
107
|
"requestMethodsImportPath": "./fetch",
|
|
114
108
|
"dataLevel": "serve",
|
|
109
|
+
"parameterSeparator": "_",
|
|
115
110
|
"formatting": {
|
|
116
111
|
"indentation": "\t",
|
|
117
112
|
"lineEnding": "\n"
|
|
118
113
|
},
|
|
119
|
-
"
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
114
|
+
"swaggerServers": {
|
|
115
|
+
"url": "https://generator3.swagger.io/openapi2.json",
|
|
116
|
+
"apiListFileName": "index.ts",
|
|
117
|
+
"publicPrefix": "/api",
|
|
118
|
+
"pathPrefix": "/gateway",
|
|
119
|
+
"dataLevel": "serve",
|
|
120
|
+
"parameterSeparator": "_",
|
|
121
|
+
"headers": {
|
|
122
|
+
"Authorization": "Bearer token"
|
|
123
|
+
},
|
|
124
|
+
"includeInterface": [
|
|
125
|
+
{
|
|
126
|
+
"path": "/api/user",
|
|
127
|
+
"method": "get"
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
},
|
|
133
131
|
"enmuConfig": {
|
|
134
132
|
"erasableSyntaxOnly": false,
|
|
135
133
|
"varnames": "enum-varnames",
|
|
@@ -162,12 +160,22 @@ $ anl type
|
|
|
162
160
|
{
|
|
163
161
|
"url": "https://generator3.swagger.io/openapi1.json",
|
|
164
162
|
"apiListFileName": "op.ts",
|
|
165
|
-
"
|
|
163
|
+
"pathPrefix": "/forward",
|
|
164
|
+
"dataLevel": "serve",
|
|
165
|
+
"parameterSeparator": "_",
|
|
166
|
+
"headers": {},
|
|
167
|
+
"includeInterface": [
|
|
168
|
+
{
|
|
169
|
+
"path": "/op/trade/order/queryPage",
|
|
170
|
+
"method": "post"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
166
173
|
},
|
|
167
174
|
{
|
|
168
175
|
"url": "https://generator3.swagger.io/openapi2.json",
|
|
169
176
|
"apiListFileName": "index.ts",
|
|
170
177
|
"publicPrefix": "/api",
|
|
178
|
+
"dataLevel": "data",
|
|
171
179
|
"headers": {}
|
|
172
180
|
}
|
|
173
181
|
]
|
|
@@ -184,22 +192,31 @@ $ anl type
|
|
|
184
192
|
| importEnumPath | string | Sí | Ruta de importación de enum (ruta de referencia de archivos enum en apps/types/models/\*.ts) |
|
|
185
193
|
| swaggerJsonUrl | string | No | Dirección del documento Swagger JSON (migrado a `swaggerServers`, conservado para compatibilidad con configuración antigua) **Este campo se eliminará en versiones futuras** |
|
|
186
194
|
| swaggerServers | object \| Array<object> | No | Configuración del servidor Swagger. Un solo servidor se puede completar directamente como objeto, múltiples servidores usan array. Cada servidor puede configurar `url`, `publicPrefix`, `apiListFileName`, `headers`<br />Este campo corresponde a los ejemplos de configuración de un solo servidor Swagger y configuración de múltiples servidores Swagger, desplázate hacia arriba para verlos |
|
|
187
|
-
| swaggerServers[].url
|
|
188
|
-
| swaggerServers[].publicPrefix
|
|
195
|
+
| swaggerServers[].url | string | Sí | Dirección del documento Swagger JSON |
|
|
196
|
+
| swaggerServers[].publicPrefix | string | No | Prefijo público en la ruta URL, por ejemplo: api/users, api/users/{id}, api es el prefijo público |
|
|
197
|
+
| swaggerServers[].pathPrefix | string | No | Prefijo de ruta de solicitud (puede entenderse como nombre de módulo), se agregará automáticamente delante de cada ruta de solicitud API.<br />Por ejemplo: cuando `pathPrefix: "/forward"`,<br />`/publicPrefix/pathPrefix/user` se convierte en `/api/forward/user` |
|
|
189
198
|
| swaggerServers[].apiListFileName | string | No | Nombre del archivo de lista de API, el predeterminado es `index.ts`. Cuando hay múltiples servidores, el nombre de archivo de cada servidor debe ser único |
|
|
190
|
-
| swaggerServers[].headers
|
|
191
|
-
|
|
|
192
|
-
|
|
|
193
|
-
|
|
|
199
|
+
| swaggerServers[].headers | object | No | Configuración de encabezados de solicitud para este servidor |
|
|
200
|
+
| swaggerServers[].dataLevel | 'data' \| 'serve' \| 'axios' | No | Nivel de datos de retorno de interfaz para este servidor. Si no se configura, se usa la configuración global `dataLevel` |
|
|
201
|
+
| swaggerServers[].parameterSeparator | '$' \| '\_' | No | Separador utilizado al generar nombres de API y nombres de tipo para este servidor. Si no se configura, se usa la configuración global `parameterSeparator` |
|
|
202
|
+
| swaggerServers[].includeInterface | Array<{path: string, method: string}> | No | Lista de interfaces incluidas para este servidor. Si no se configura, se usa la configuración global `includeInterface` |
|
|
203
|
+
| swaggerServers[].excludeInterface | Array<{path: string, method: string}> | No | Lista de interfaces excluidas para este servidor. Si no se configura, se usa la configuración global `excludeInterface` |
|
|
204
|
+
| requestMethodsImportPath | string | Sí | Ruta de importación de métodos de solicitud |
|
|
205
|
+
| dataLevel | 'data' \| 'serve' \| 'axios' | No | Configuración global de nivel de datos de retorno de interfaz, valor predeterminado: `'serve'`. Cada servidor puede configurarlo individualmente para sobrescribir |
|
|
206
|
+
| formatting | object | No | Configuración de formateo de código |
|
|
207
|
+
| formatting.indentation | string | No | Carácter de indentación de código, por ejemplo: `"\t"` o `" "` (dos espacios) |
|
|
208
|
+
| formatting.lineEnding | string | No | Carácter de salto de línea, por ejemplo: `"\n"` (LF) o `"\r\n"` (CRLF) |
|
|
194
209
|
| headers | object | No | Configuración de encabezados de solicitud (migrado a `swaggerServers`, conservado para compatibilidad con configuración antigua) |
|
|
195
|
-
| includeInterface
|
|
196
|
-
| excludeInterface
|
|
197
|
-
| publicPrefix
|
|
198
|
-
|
|
|
199
|
-
|
|
|
200
|
-
|
|
|
201
|
-
| enmuConfig.
|
|
202
|
-
| enmuConfig.
|
|
210
|
+
| includeInterface | Array<{path: string, method: string}> | No | Interfaces incluidas globalmente: el archivo de lista de interfaces especificado por `saveApiListFolderPath` solo incluirá las interfaces en la lista, es mutuamente excluyente con el campo `excludeInterface`. Cada servidor puede configurarlo individualmente para sobrescribir |
|
|
211
|
+
| excludeInterface | Array<{path: string, method: string}> | No | Interfaces excluidas globalmente: el texto de lista de interfaces especificado por `saveApiListFolderPath` no incluirá las interfaces en esta lista, es mutuamente excluyente con `includeInterface`. Cada servidor puede configurarlo individualmente para sobrescribir |
|
|
212
|
+
| publicPrefix | string | No | Prefijo público global en la ruta URL (migrado a `swaggerServers`, conservado para compatibilidad con configuración antigua) |
|
|
213
|
+
| pathPrefix | string | No | Prefijo de ruta de solicitud global (cada servidor puede configurarlo individualmente para sobrescribir) |
|
|
214
|
+
| apiListFileName | string | No | Nombre del archivo de lista de API global, el predeterminado es `index.ts` (migrado a `swaggerServers`, conservado para compatibilidad con configuración antigua) |
|
|
215
|
+
| enmuConfig | object | Sí | Objeto de configuración de enumeración |
|
|
216
|
+
| enmuConfig.erasableSyntaxOnly | boolean | Sí | Alineado con la opción `compilerOptions.erasableSyntaxOnly` de tsconfig.json. Cuando es `true`, genera objetos const en lugar de enum (solo sintaxis de tipo). Valor predeterminado: `false` |
|
|
217
|
+
| enmuConfig.varnames | string | No | Nombre del campo en el esquema Swagger que contiene los nombres personalizados de los miembros del enum. Valor predeterminado: `enum-varnames`. |
|
|
218
|
+
| enmuConfig.comment | string | No | Nombre del campo en el esquema Swagger que contiene las descripciones de los miembros del enum (se usa para generar comentarios). Valor predeterminado: `enum-descriptions`. |
|
|
219
|
+
| parameterSeparator | '$' \| '\_' | No | Separador utilizado globalmente entre segmentos de ruta y parámetros al generar nombres de API y nombres de tipo. Por ejemplo, `/users/{userId}/posts` con el separador `'_'` genera `users_userId_posts_GET`. Valor predeterminado: `'_'`. Cada servidor puede configurarlo individualmente para sobrescribir |
|
|
203
220
|
|
|
204
221
|
#### Relación entre Elementos de Configuración y Archivos Generados
|
|
205
222
|
|
|
@@ -253,6 +270,48 @@ export const userDetailGet = (params: UserDetail_GET.Query) => GET<UserDetail_GE
|
|
|
253
270
|
|
|
254
271
|
### Descripción de Características
|
|
255
272
|
|
|
273
|
+
#### Prioridad de Configuración
|
|
274
|
+
|
|
275
|
+
La herramienta admite configuración global y configuración a nivel de servidor, siguiendo estas reglas de prioridad:
|
|
276
|
+
|
|
277
|
+
**Prioridad: Configuración a nivel de servidor > Configuración global > Valores predeterminados**
|
|
278
|
+
|
|
279
|
+
Los siguientes elementos de configuración admiten sobrescritura a nivel de servidor de la configuración global:
|
|
280
|
+
|
|
281
|
+
- `dataLevel`: Nivel de datos de retorno de interfaz
|
|
282
|
+
- `parameterSeparator`: Separador para nombres de API y nombres de tipo
|
|
283
|
+
- `includeInterface`: Lista de interfaces incluidas
|
|
284
|
+
- `excludeInterface`: Lista de interfaces excluidas
|
|
285
|
+
- `pathPrefix`: Prefijo de ruta de solicitud
|
|
286
|
+
- `publicPrefix`: Prefijo común de URL
|
|
287
|
+
- `headers`: Configuración de encabezados de solicitud
|
|
288
|
+
|
|
289
|
+
**Ejemplo:**
|
|
290
|
+
|
|
291
|
+
```json
|
|
292
|
+
{
|
|
293
|
+
"dataLevel": "serve",
|
|
294
|
+
"parameterSeparator": "_",
|
|
295
|
+
"swaggerServers": [
|
|
296
|
+
{
|
|
297
|
+
"url": "http://api1.example.com/swagger.json",
|
|
298
|
+
"dataLevel": "data",
|
|
299
|
+
"apiListFileName": "api1.ts"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"url": "http://api2.example.com/swagger.json",
|
|
303
|
+
"apiListFileName": "api2.ts"
|
|
304
|
+
}
|
|
305
|
+
]
|
|
306
|
+
}
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
En la configuración anterior:
|
|
310
|
+
|
|
311
|
+
- `api1.ts` usa `dataLevel: "data"` (configuración a nivel de servidor)
|
|
312
|
+
- `api2.ts` usa `dataLevel: "serve"` (configuración global)
|
|
313
|
+
- Ambos servidores usan `parameterSeparator: "_"` (configuración global)
|
|
314
|
+
|
|
256
315
|
#### Análisis de Tipos
|
|
257
316
|
|
|
258
317
|
- Soporte para todos los tipos de datos de la especificación OpenAPI 3.0
|
|
@@ -303,6 +362,46 @@ interface User {
|
|
|
303
362
|
}
|
|
304
363
|
```
|
|
305
364
|
|
|
365
|
+
#### Configuración de Nivel de Datos (dataLevel)
|
|
366
|
+
|
|
367
|
+
`dataLevel` se utiliza para configurar el nivel de extracción de datos devueltos por la interfaz, admite tres opciones:
|
|
368
|
+
|
|
369
|
+
1. **`'serve'` (valor predeterminado)**: Extrae el campo `data` devuelto por el servidor
|
|
370
|
+
|
|
371
|
+
```typescript
|
|
372
|
+
// Retorno del servidor: { code: 200, message: 'success', data: { id: 1, name: 'user' } }
|
|
373
|
+
// Retorno de la función: { id: 1, name: 'user' }
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
2. **`'data'`**: Extrae el campo `data.data` (adecuado para escenarios de data anidada)
|
|
377
|
+
|
|
378
|
+
```typescript
|
|
379
|
+
// Retorno del servidor: { data: { code: 200, data: { id: 1, name: 'user' } } }
|
|
380
|
+
// Retorno de la función: { id: 1, name: 'user' }
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
3. **`'axios'`**: Devuelve el objeto de respuesta axios completo
|
|
384
|
+
```typescript
|
|
385
|
+
// Retorno del servidor: { code: 200, message: 'success', data: { id: 1, name: 'user' } }
|
|
386
|
+
// Retorno de la función: { code: 200, message: 'success', data: { id: 1, name: 'user' } }
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
**Ejemplo de configuración:**
|
|
390
|
+
|
|
391
|
+
```json
|
|
392
|
+
{
|
|
393
|
+
"dataLevel": "serve",
|
|
394
|
+
"swaggerServers": [
|
|
395
|
+
{
|
|
396
|
+
"url": "http://api1.example.com/swagger.json",
|
|
397
|
+
"dataLevel": "data"
|
|
398
|
+
}
|
|
399
|
+
]
|
|
400
|
+
}
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
> **Nota**: La configuración de `dataLevel` a nivel de servidor sobrescribirá la configuración global.
|
|
404
|
+
|
|
306
405
|
#### Carga de Archivos
|
|
307
406
|
|
|
308
407
|
Cuando se detecta un tipo de carga de archivo, se añaden automáticamente los encabezados de solicitud correspondientes:
|
|
@@ -314,6 +413,33 @@ export const uploadFile = (params: UploadFile.Body) =>
|
|
|
314
413
|
});
|
|
315
414
|
```
|
|
316
415
|
|
|
416
|
+
#### Formateo de Código
|
|
417
|
+
|
|
418
|
+
La herramienta admite opciones de formateo de código personalizadas, controladas mediante la configuración `formatting`:
|
|
419
|
+
|
|
420
|
+
**Ejemplo de configuración:**
|
|
421
|
+
|
|
422
|
+
```json
|
|
423
|
+
{
|
|
424
|
+
"formatting": {
|
|
425
|
+
"indentation": "\t",
|
|
426
|
+
"lineEnding": "\n"
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
**Explicación de la configuración:**
|
|
432
|
+
|
|
433
|
+
- `indentation`: Carácter de indentación de código
|
|
434
|
+
- `"\t"`: Usar indentación Tab (predeterminado)
|
|
435
|
+
- `" "`: Usar indentación de 2 espacios
|
|
436
|
+
- `" "`: Usar indentación de 4 espacios
|
|
437
|
+
- `lineEnding`: Tipo de salto de línea
|
|
438
|
+
- `"\n"`: LF (estilo Linux/macOS, recomendado)
|
|
439
|
+
- `"\r\n"`: CRLF (estilo Windows)
|
|
440
|
+
|
|
441
|
+
**Nota:** Si Prettier está configurado en el proyecto, el código generado se formateará automáticamente con Prettier, y la configuración `formatting` puede ser sobrescrita por Prettier.
|
|
442
|
+
|
|
317
443
|
#### Manejo de Errores
|
|
318
444
|
|
|
319
445
|
La herramienta tiene un mecanismo completo de manejo de errores integrado:
|
|
@@ -370,8 +496,88 @@ La herramienta admite la configuración de múltiples servidores Swagger, cada s
|
|
|
370
496
|
- Las API de los servidores posteriores se agregan a sus respectivos archivos `apiListFileName`
|
|
371
497
|
- Las definiciones de tipos y enumeraciones se fusionan en una carpeta unificada para evitar duplicados
|
|
372
498
|
|
|
499
|
+
**Configuración a nivel de servidor:**
|
|
500
|
+
|
|
501
|
+
Cada servidor admite configuración independiente de las siguientes opciones. Si no se configura, se usa la configuración global:
|
|
502
|
+
|
|
503
|
+
- `dataLevel` - Nivel de datos de retorno de interfaz
|
|
504
|
+
- `parameterSeparator` - Separador para nombres de API y nombres de tipo
|
|
505
|
+
- `includeInterface` - Lista de interfaces incluidas
|
|
506
|
+
- `excludeInterface` - Lista de interfaces excluidas
|
|
507
|
+
- `pathPrefix` - Prefijo de ruta de solicitud
|
|
508
|
+
|
|
509
|
+
#### Prefijo de Ruta (pathPrefix)
|
|
510
|
+
|
|
511
|
+
`pathPrefix` se utiliza para agregar automáticamente un prefijo delante de todas las rutas de solicitud API, esto es especialmente útil en los siguientes escenarios:
|
|
512
|
+
|
|
513
|
+
1. **Escenario de proxy inverso**: Cuando el servicio backend se enruta a través de un proxy inverso
|
|
514
|
+
2. **Gateway de API**: Agregar uniformemente un prefijo de gateway delante de la ruta
|
|
515
|
+
3. **Configuración de múltiples entornos**: Usar diferentes prefijos de ruta para diferentes entornos
|
|
516
|
+
|
|
517
|
+
**Ejemplo de uso:**
|
|
518
|
+
|
|
519
|
+
```json
|
|
520
|
+
{
|
|
521
|
+
"swaggerServers": [
|
|
522
|
+
{
|
|
523
|
+
"url": "http://api.example.com/swagger.json",
|
|
524
|
+
"pathPrefix": "/forward",
|
|
525
|
+
"apiListFileName": "api.ts"
|
|
526
|
+
}
|
|
527
|
+
]
|
|
528
|
+
}
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
**Efecto:**
|
|
532
|
+
|
|
533
|
+
La ruta `/api/user/list` definida en Swagger se generará como:
|
|
534
|
+
|
|
535
|
+
```typescript
|
|
536
|
+
export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList_GET.Response>('/forward/api/user/list', params);
|
|
537
|
+
```
|
|
538
|
+
|
|
539
|
+
**Diferencia con publicPrefix:**
|
|
540
|
+
|
|
541
|
+
- `publicPrefix`: Se usa para eliminar el prefijo común de la ruta de interfaz (solo afecta al nombre de función generado)
|
|
542
|
+
- `pathPrefix`: Se usa para agregar prefijo delante de la ruta de solicitud real (afecta a la URL de solicitud en tiempo de ejecución)
|
|
543
|
+
|
|
373
544
|
**Ejemplo de configuración:**
|
|
374
545
|
|
|
546
|
+
```json
|
|
547
|
+
{
|
|
548
|
+
"swaggerServers": [
|
|
549
|
+
{
|
|
550
|
+
"url": "http://api1.example.com/swagger.json",
|
|
551
|
+
"apiListFileName": "api1.ts",
|
|
552
|
+
"publicPrefix": "/api/v1",
|
|
553
|
+
"pathPrefix": "/forward",
|
|
554
|
+
"dataLevel": "serve",
|
|
555
|
+
"parameterSeparator": "_",
|
|
556
|
+
"headers": {
|
|
557
|
+
"Authorization": "Bearer token1"
|
|
558
|
+
},
|
|
559
|
+
"includeInterface": [
|
|
560
|
+
{
|
|
561
|
+
"path": "/api/v1/users",
|
|
562
|
+
"method": "get"
|
|
563
|
+
}
|
|
564
|
+
]
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"url": "http://api2.example.com/swagger.json",
|
|
568
|
+
"apiListFileName": "api2.ts",
|
|
569
|
+
"publicPrefix": "/api/v2",
|
|
570
|
+
"dataLevel": "data",
|
|
571
|
+
"headers": {
|
|
572
|
+
"Authorization": "Bearer token2"
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
]
|
|
576
|
+
}
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
**Ejemplo de configuración anterior (sin usar el nuevo formato):**
|
|
580
|
+
|
|
375
581
|
```json
|
|
376
582
|
{
|
|
377
583
|
"swaggerServers": [
|
|
@@ -420,10 +626,12 @@ Todos los métodos admiten definiciones de tipos seguros para parámetros y resp
|
|
|
420
626
|
|
|
421
627
|
1. Asegúrate de que la dirección del documento Swagger JSON sea accesible
|
|
422
628
|
2. Las rutas en el archivo de configuración deben ser relativas al directorio raíz del proyecto
|
|
423
|
-
3. Los archivos generados sobrescribirán archivos existentes con el mismo nombre
|
|
629
|
+
3. Los archivos generados sobrescribirán archivos existentes con el mismo nombre (pero `config.ts`, `error-message.ts`, `fetch.ts`, `api-type.d.ts` no se sobrescribirán si ya existen)
|
|
424
630
|
4. Se recomienda incluir los archivos generados en el control de versiones
|
|
425
631
|
5. Al usar múltiples servidores Swagger, asegúrate de que el `apiListFileName` de cada servidor sea único para evitar sobrescritura de archivos
|
|
426
632
|
6. Al configurar múltiples servidores, las definiciones de tipos y enumeraciones se fusionarán, y pueden ocurrir conflictos si hay tipos con el mismo nombre de diferentes servidores
|
|
633
|
+
7. La configuración a nivel de servidor (`dataLevel`, `parameterSeparator`, `includeInterface`, `excludeInterface`, `pathPrefix`) sobrescribirá la configuración global
|
|
634
|
+
8. `includeInterface` y `excludeInterface` no se pueden configurar simultáneamente. Si se configuran ambos, se usará `includeInterface` con prioridad
|
|
427
635
|
|
|
428
636
|
### Preguntas Frecuentes
|
|
429
637
|
|
|
@@ -435,6 +643,61 @@ Todos los métodos admiten definiciones de tipos seguros para parámetros y resp
|
|
|
435
643
|
- Verifica si la configuración de requestMethodsImportPath es correcta
|
|
436
644
|
- Confirma si el archivo de métodos de solicitud existe
|
|
437
645
|
|
|
646
|
+
3. **¿Cuándo usar `pathPrefix`?**
|
|
647
|
+
- Cuando tu API necesita accederse a través de un proxy inverso o gateway
|
|
648
|
+
- Por ejemplo: Swagger define `/api/user`, pero la solicitud real necesita ser `/gateway/api/user`
|
|
649
|
+
- Simplemente configura `pathPrefix: "/gateway"`
|
|
650
|
+
|
|
651
|
+
4. **¿Cuál es la diferencia entre `publicPrefix` y `pathPrefix`?**
|
|
652
|
+
- `publicPrefix`: Elimina el prefijo de la ruta de interfaz, solo afecta al nombre de función generado
|
|
653
|
+
- Por ejemplo: `/api/user/list` después de eliminar `/api`, el nombre de función es `userListGet`
|
|
654
|
+
- `pathPrefix`: Agrega prefijo delante de la ruta de solicitud, afecta a la URL de solicitud real
|
|
655
|
+
- Por ejemplo: `/api/user/list` después de agregar `/forward`, la URL de solicitud es `/forward/api/user/list`
|
|
656
|
+
|
|
657
|
+
5. **¿Cómo configurar diferentes `dataLevel` para múltiples servidores?**
|
|
658
|
+
|
|
659
|
+
```json
|
|
660
|
+
{
|
|
661
|
+
"dataLevel": "serve",
|
|
662
|
+
"swaggerServers": [
|
|
663
|
+
{
|
|
664
|
+
"url": "http://old-api.com/swagger.json",
|
|
665
|
+
"dataLevel": "axios",
|
|
666
|
+
"apiListFileName": "old-api.ts"
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"url": "http://new-api.com/swagger.json",
|
|
670
|
+
"apiListFileName": "new-api.ts"
|
|
671
|
+
}
|
|
672
|
+
]
|
|
673
|
+
}
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
- `old-api.ts` usa `dataLevel: "axios"`
|
|
677
|
+
- `new-api.ts` usa el `dataLevel: "serve"` global
|
|
678
|
+
|
|
679
|
+
6. **¿Cómo generar solo interfaces parciales?**
|
|
680
|
+
- Usa la configuración `includeInterface`:
|
|
681
|
+
```json
|
|
682
|
+
{
|
|
683
|
+
"swaggerServers": [
|
|
684
|
+
{
|
|
685
|
+
"url": "http://api.com/swagger.json",
|
|
686
|
+
"includeInterface": [
|
|
687
|
+
{ "path": "/api/user", "method": "get" },
|
|
688
|
+
{ "path": "/api/user/{id}", "method": "post" }
|
|
689
|
+
]
|
|
690
|
+
}
|
|
691
|
+
]
|
|
692
|
+
}
|
|
693
|
+
```
|
|
694
|
+
- O usa `excludeInterface` para excluir interfaces no deseadas
|
|
695
|
+
|
|
696
|
+
7. **¿Qué hacer si los archivos generados fueron sobrescritos?**
|
|
697
|
+
- Los archivos `config.ts`, `error-message.ts`, `fetch.ts`, `api-type.d.ts` solo se generan la primera vez si no existen
|
|
698
|
+
- Los archivos de lista de API y archivos de tipos se regeneran cada vez
|
|
699
|
+
- Se recomienda incluir los archivos generados en el control de versiones para facilitar la revisión de cambios
|
|
700
|
+
|
|
438
701
|
# Instrucciones de Uso del Comando `anl lint`
|
|
439
702
|
|
|
440
703
|
> Proporciona funcionalidad de configuración con un solo clic para varias herramientas lint de proyectos frontend, incluyendo:
|