anl 26.107.0 → 26.107.1
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 +59 -59
- package/README.es.md +59 -59
- package/README.fr.md +106 -106
- package/README.jp.md +56 -56
- package/README.md +131 -67
- package/README.ru.md +56 -56
- package/README.zh.md +144 -78
- 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/README.ru.md
CHANGED
|
@@ -106,7 +106,7 @@ $ anl type
|
|
|
106
106
|
"saveApiListFolderPath": "apps/api/",
|
|
107
107
|
"saveEnumFolderPath": "apps/enums",
|
|
108
108
|
"importEnumPath": "../../enums",
|
|
109
|
-
"
|
|
109
|
+
"swaggerConfig": {
|
|
110
110
|
"url": "https://generator3.swagger.io/openapi2.json",
|
|
111
111
|
"apiListFileName": "index.ts",
|
|
112
112
|
"publicPrefix": "api",
|
|
@@ -160,7 +160,7 @@ $ anl type
|
|
|
160
160
|
"varnames": "enum-varnames",
|
|
161
161
|
"comment": "enum-descriptions"
|
|
162
162
|
},
|
|
163
|
-
"
|
|
163
|
+
"swaggerConfig": [
|
|
164
164
|
{
|
|
165
165
|
"url": "https://generator3.swagger.io/openapi1.json",
|
|
166
166
|
"apiListFileName": "op.ts",
|
|
@@ -178,39 +178,39 @@ $ anl type
|
|
|
178
178
|
|
|
179
179
|
#### Описание элементов конфигурации
|
|
180
180
|
|
|
181
|
-
| Элемент конфигурации
|
|
182
|
-
|
|
|
183
|
-
| saveTypeFolderPath
|
|
184
|
-
| saveApiListFolderPath
|
|
185
|
-
| saveEnumFolderPath
|
|
186
|
-
| importEnumPath
|
|
187
|
-
| swaggerJsonUrl
|
|
188
|
-
|
|
|
189
|
-
|
|
|
190
|
-
|
|
|
191
|
-
|
|
|
192
|
-
|
|
|
193
|
-
|
|
|
194
|
-
|
|
|
195
|
-
|
|
|
196
|
-
|
|
|
197
|
-
|
|
|
198
|
-
| requestMethodsImportPath
|
|
199
|
-
| dataLevel
|
|
200
|
-
| formatting
|
|
201
|
-
| formatting.indentation
|
|
202
|
-
| formatting.lineEnding
|
|
203
|
-
| headers
|
|
204
|
-
| includeInterface
|
|
205
|
-
| excludeInterface
|
|
206
|
-
| publicPrefix
|
|
207
|
-
|
|
|
208
|
-
| apiListFileName
|
|
209
|
-
| enmuConfig
|
|
210
|
-
| enmuConfig.erasableSyntaxOnly
|
|
211
|
-
| enmuConfig.varnames
|
|
212
|
-
| enmuConfig.comment
|
|
213
|
-
| parameterSeparator
|
|
181
|
+
| Элемент конфигурации | Тип | Обязательный | Описание |
|
|
182
|
+
| ---------------------------------- | ------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
183
|
+
| saveTypeFolderPath | string | Да | Путь сохранения файлов определений типов |
|
|
184
|
+
| saveApiListFolderPath | string | Да | Путь сохранения файлов функций API-запросов |
|
|
185
|
+
| saveEnumFolderPath | string | Да | Путь сохранения файлов данных enum |
|
|
186
|
+
| importEnumPath | string | Да | Путь импорта enum (путь ссылки на файлы enum в apps/types/models/\*.ts) |
|
|
187
|
+
| swaggerJsonUrl | string | Нет | Адрес документа Swagger JSON (мигрировано в `swaggerConfig`, сохранено для обратной совместимости) **Это поле будет удалено в будущих версиях** |
|
|
188
|
+
| swaggerConfig | object \| Array<object> | Нет | Конфигурация Swagger сервера. Один сервер может быть объектом, несколько серверов используют массив. Каждый сервер может настроить `url`, `publicPrefix`, `modulePrefix`, `apiListFileName`, `headers`, `dataLevel`, `parameterSeparator`, `includeInterface`, `excludeInterface`<br />См. примеры конфигурации одного и нескольких Swagger серверов выше |
|
|
189
|
+
| swaggerConfig[].url | string | Да | Адрес документа Swagger JSON |
|
|
190
|
+
| swaggerConfig[].publicPrefix | string | Нет | Общий префикс на url path, например: api/users、api/users/{id} ,api является общим префиксом |
|
|
191
|
+
| swaggerConfig[].apiListFileName | string | Нет | Имя файла списка API, по умолчанию `index.ts`. При использовании нескольких серверов имя файла каждого сервера должно быть уникальным |
|
|
192
|
+
| swaggerConfig[].headers | object | Нет | Конфигурация заголовков запроса для этого сервера |
|
|
193
|
+
| swaggerConfig[].modulePrefix | string | Нет | Префикс пути запроса (может пониматься как имя модуля), автоматически добавляется к каждому пути API-запроса.<br />Например: при `modulePrefix: "/forward"`<br />`/publicPrefix/modulePrefix/user` становится `/api/forward/user` |
|
|
194
|
+
| swaggerConfig[].dataLevel | 'data' \| 'serve' \| 'axios' | Нет | Уровень данных возврата интерфейса для этого сервера. Если не установлено, используется глобальная конфигурация `dataLevel` |
|
|
195
|
+
| swaggerConfig[].parameterSeparator | '$' \| '\_' | Нет | Разделитель, используемый при генерации имен API и имен типов для этого сервера. Если не установлено, используется глобальная конфигурация `parameterSeparator` |
|
|
196
|
+
| swaggerConfig[].includeInterface | Array<{path: string, method: string}> | Нет | Список интерфейсов для включения для этого сервера. Если не установлено, используется глобальная конфигурация `includeInterface` |
|
|
197
|
+
| swaggerConfig[].excludeInterface | Array<{path: string, method: string}> | Нет | Список интерфейсов для исключения для этого сервера. Если не установлено, используется глобальная конфигурация `excludeInterface` |
|
|
198
|
+
| requestMethodsImportPath | string | Да | Путь импорта методов запросов |
|
|
199
|
+
| dataLevel | 'data' \| 'serve' \| 'axios' | Нет | Глобальная конфигурация уровня данных возврата интерфейса, по умолчанию: `'serve'`. Каждый сервер может переопределить индивидуально |
|
|
200
|
+
| formatting | object | Нет | Конфигурация форматирования кода |
|
|
201
|
+
| formatting.indentation | string | Нет | Символ отступа кода, например: `"\t"` или `" "` (два пробела) |
|
|
202
|
+
| formatting.lineEnding | string | Нет | Разрыв строки, например: `"\n"` (LF) или `"\r\n"` (CRLF) |
|
|
203
|
+
| headers | object | Нет | Конфигурация заголовков запроса (мигрировано в `swaggerConfig`, сохранено для обратной совместимости) |
|
|
204
|
+
| includeInterface | Array<{path: string, method: string}> | Нет | Глобальные включаемые интерфейсы: файл списка интерфейсов, указанный `saveApiListFolderPath`, будет включать только интерфейсы из списка, взаимоисключающий с полем `excludeInterface`. Каждый сервер может переопределить индивидуально |
|
|
205
|
+
| excludeInterface | Array<{path: string, method: string}> | Нет | Глобальные исключаемые интерфейсы: файл списка интерфейсов, указанный `saveApiListFolderPath`, не будет содержать интерфейсы из этого списка, взаимоисключающий с `includeInterface`. Каждый сервер может переопределить индивидуально |
|
|
206
|
+
| publicPrefix | string | Нет | Глобальный общий префикс на url path (мигрировано в `swaggerConfig`, сохранено для обратной совместимости) |
|
|
207
|
+
| modulePrefix | string | Нет | Глобальный префикс пути запроса (каждый сервер может переопределить индивидуально) |
|
|
208
|
+
| apiListFileName | string | Нет | Глобальное имя файла списка API, по умолчанию `index.ts` (мигрировано в `swaggerConfig`, сохранено для обратной совместимости) |
|
|
209
|
+
| enmuConfig | object | Да | Объект конфигурации enum |
|
|
210
|
+
| enmuConfig.erasableSyntaxOnly | boolean | Да | Соответствует опции `compilerOptions.erasableSyntaxOnly` в tsconfig.json. При значении `true` генерируется const объект вместо enum (только типовый синтаксис). Значение по умолчанию: `false` |
|
|
211
|
+
| enmuConfig.varnames | string | Нет | Имя поля схемы Swagger для пользовательских имен элементов enum. Значение по умолчанию: `enum-varnames`. |
|
|
212
|
+
| enmuConfig.comment | string | Нет | Имя поля схемы Swagger для описаний элементов enum (используется для генерации комментариев). Значение по умолчанию: `enum-descriptions`. |
|
|
213
|
+
| parameterSeparator | '$' \| '\_' | Нет | Глобальный разделитель между сегментами пути и параметрами при генерации имен API и имен типов. Например, `/users/{userId}/posts` с разделителем `'_'` генерирует `users_userId_posts_GET`. Значение по умолчанию: `'_'`. Каждый сервер может переопределить индивидуально |
|
|
214
214
|
|
|
215
215
|
#### Соответствие элементов конфигурации и генерируемых файлов
|
|
216
216
|
|
|
@@ -276,7 +276,7 @@ export const userDetailGet = (params: UserDetail_GET.Query) => GET<UserDetail_GE
|
|
|
276
276
|
- `parameterSeparator`: Разделитель для имен API и имен типов
|
|
277
277
|
- `includeInterface`: Список включаемых интерфейсов
|
|
278
278
|
- `excludeInterface`: Список исключаемых интерфейсов
|
|
279
|
-
- `
|
|
279
|
+
- `modulePrefix`: Префикс пути запроса
|
|
280
280
|
- `publicPrefix`: Общий префикс URL
|
|
281
281
|
- `headers`: Конфигурация заголовков запроса
|
|
282
282
|
|
|
@@ -286,7 +286,7 @@ export const userDetailGet = (params: UserDetail_GET.Query) => GET<UserDetail_GE
|
|
|
286
286
|
{
|
|
287
287
|
"dataLevel": "serve",
|
|
288
288
|
"parameterSeparator": "_",
|
|
289
|
-
"
|
|
289
|
+
"swaggerConfig": [
|
|
290
290
|
{
|
|
291
291
|
"url": "http://api1.example.com/swagger.json",
|
|
292
292
|
"dataLevel": "data",
|
|
@@ -385,7 +385,7 @@ interface User {
|
|
|
385
385
|
```json
|
|
386
386
|
{
|
|
387
387
|
"dataLevel": "serve",
|
|
388
|
-
"
|
|
388
|
+
"swaggerConfig": [
|
|
389
389
|
{
|
|
390
390
|
"url": "http://api1.example.com/swagger.json",
|
|
391
391
|
"dataLevel": "data"
|
|
@@ -481,8 +481,8 @@ export const uploadFile = (params: UploadFile.Body) =>
|
|
|
481
481
|
|
|
482
482
|
Инструмент поддерживает конфигурацию нескольких Swagger серверов, каждый сервер может быть настроен независимо:
|
|
483
483
|
|
|
484
|
-
- **Один сервер**: `
|
|
485
|
-
- **Несколько серверов**: `
|
|
484
|
+
- **Один сервер**: `swaggerConfig` может быть напрямую заполнен объектом
|
|
485
|
+
- **Несколько серверов**: `swaggerConfig` использует формат массива, каждый сервер должен настроить уникальный `apiListFileName`
|
|
486
486
|
|
|
487
487
|
**Как это работает:**
|
|
488
488
|
|
|
@@ -498,11 +498,11 @@ export const uploadFile = (params: UploadFile.Body) =>
|
|
|
498
498
|
- `parameterSeparator` - Разделитель для имен API и имен типов
|
|
499
499
|
- `includeInterface` - Список включаемых интерфейсов
|
|
500
500
|
- `excludeInterface` - Список исключаемых интерфейсов
|
|
501
|
-
- `
|
|
501
|
+
- `modulePrefix` - Префикс пути запроса
|
|
502
502
|
|
|
503
|
-
#### Префикс пути (
|
|
503
|
+
#### Префикс пути (modulePrefix)
|
|
504
504
|
|
|
505
|
-
`
|
|
505
|
+
`modulePrefix` используется для автоматического добавления префикса ко всем путям API-запросов, что особенно полезно в следующих сценариях:
|
|
506
506
|
|
|
507
507
|
1. **Сценарии обратного прокси**: Когда серверные службы перенаправляются через обратный прокси
|
|
508
508
|
2. **API-шлюз**: Единообразное добавление префикса шлюза к путям
|
|
@@ -512,10 +512,10 @@ export const uploadFile = (params: UploadFile.Body) =>
|
|
|
512
512
|
|
|
513
513
|
```json
|
|
514
514
|
{
|
|
515
|
-
"
|
|
515
|
+
"swaggerConfig": [
|
|
516
516
|
{
|
|
517
517
|
"url": "http://api.example.com/swagger.json",
|
|
518
|
-
"
|
|
518
|
+
"modulePrefix": "/forward",
|
|
519
519
|
"apiListFileName": "api.ts"
|
|
520
520
|
}
|
|
521
521
|
]
|
|
@@ -533,18 +533,18 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
|
|
|
533
533
|
**Отличие от publicPrefix:**
|
|
534
534
|
|
|
535
535
|
- `publicPrefix`: Используется для удаления общего префикса из путей интерфейса (влияет только на сгенерированные имена функций)
|
|
536
|
-
- `
|
|
536
|
+
- `modulePrefix`: Используется для добавления префикса к фактическим путям запроса (влияет на URL-адреса запросов во время выполнения)
|
|
537
537
|
|
|
538
538
|
**Пример конфигурации:**
|
|
539
539
|
|
|
540
540
|
```json
|
|
541
541
|
{
|
|
542
|
-
"
|
|
542
|
+
"swaggerConfig": [
|
|
543
543
|
{
|
|
544
544
|
"url": "http://api1.example.com/swagger.json",
|
|
545
545
|
"apiListFileName": "api1.ts",
|
|
546
546
|
"publicPrefix": "/api/v1",
|
|
547
|
-
"
|
|
547
|
+
"modulePrefix": "/forward",
|
|
548
548
|
"dataLevel": "serve",
|
|
549
549
|
"parameterSeparator": "_",
|
|
550
550
|
"headers": {
|
|
@@ -574,7 +574,7 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
|
|
|
574
574
|
|
|
575
575
|
- Старая конфигурация (`swaggerJsonUrl`, `publicPrefix`, `headers`) все еще совместима
|
|
576
576
|
- Инструмент автоматически обнаружит старую конфигурацию и предложит способы миграции
|
|
577
|
-
- Рекомендуется мигрировать на новую конфигурацию `
|
|
577
|
+
- Рекомендуется мигрировать на новую конфигурацию `swaggerConfig` для большей гибкости
|
|
578
578
|
|
|
579
579
|
#### Поддержка HTTP методов
|
|
580
580
|
|
|
@@ -599,7 +599,7 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
|
|
|
599
599
|
4. Рекомендуется добавлять генерируемые файлы в систему контроля версий
|
|
600
600
|
5. При использовании нескольких Swagger серверов убедитесь, что `apiListFileName` каждого сервера уникален, чтобы избежать перезаписи файлов
|
|
601
601
|
6. При конфигурации нескольких серверов определения типов и enum будут объединены. Если разные серверы имеют типы с одинаковыми именами, могут возникнуть конфликты
|
|
602
|
-
7. Конфигурация уровня сервера (`dataLevel`, `parameterSeparator`, `includeInterface`, `excludeInterface`, `
|
|
602
|
+
7. Конфигурация уровня сервера (`dataLevel`, `parameterSeparator`, `includeInterface`, `excludeInterface`, `modulePrefix`) переопределит глобальную конфигурацию
|
|
603
603
|
8. `includeInterface` и `excludeInterface` нельзя настраивать одновременно. Если оба настроены, приоритет будет у `includeInterface`
|
|
604
604
|
|
|
605
605
|
### Часто задаваемые вопросы
|
|
@@ -613,15 +613,15 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
|
|
|
613
613
|
- Проверьте, правильно ли настроен `requestMethodsImportPath`
|
|
614
614
|
- Убедитесь, что файл методов запросов существует
|
|
615
615
|
|
|
616
|
-
3. **Когда использовать `
|
|
616
|
+
3. **Когда использовать `modulePrefix`?**
|
|
617
617
|
- Когда ваши API необходимо получать через обратный прокси или шлюз
|
|
618
618
|
- Например: Swagger определяет `/api/user`, но фактический запрос должен быть `/gateway/api/user`
|
|
619
|
-
- Установите `
|
|
619
|
+
- Установите `modulePrefix: "/gateway"` для достижения этого
|
|
620
620
|
|
|
621
|
-
4. **В чем разница между `publicPrefix` и `
|
|
621
|
+
4. **В чем разница между `publicPrefix` и `modulePrefix`?**
|
|
622
622
|
- `publicPrefix`: Удаляет префикс из путей интерфейса, влияет только на сгенерированные имена функций
|
|
623
623
|
- Пример: `/api/user/list` после удаления `/api`, имя функции становится `userListGet`
|
|
624
|
-
- `
|
|
624
|
+
- `modulePrefix`: Добавляет префикс к путям запроса, влияет на фактические URL запросов
|
|
625
625
|
- Пример: `/api/user/list` после добавления `/forward`, URL запроса становится `/forward/api/user/list`
|
|
626
626
|
|
|
627
627
|
5. **Как настроить разные `dataLevel` для нескольких серверов?**
|
|
@@ -629,7 +629,7 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
|
|
|
629
629
|
```json
|
|
630
630
|
{
|
|
631
631
|
"dataLevel": "serve",
|
|
632
|
-
"
|
|
632
|
+
"swaggerConfig": [
|
|
633
633
|
{
|
|
634
634
|
"url": "http://old-api.com/swagger.json",
|
|
635
635
|
"dataLevel": "axios",
|
|
@@ -650,7 +650,7 @@ export const apiUserListGet = (params: ApiUserList_GET.Query) => GET<ApiUserList
|
|
|
650
650
|
- Используйте конфигурацию `includeInterface`:
|
|
651
651
|
```json
|
|
652
652
|
{
|
|
653
|
-
"
|
|
653
|
+
"swaggerConfig": [
|
|
654
654
|
{
|
|
655
655
|
"url": "http://api.com/swagger.json",
|
|
656
656
|
"includeInterface": [
|