@nest-omni/core 4.1.3-2 → 4.1.3-20
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/audit/audit.module.d.ts +10 -0
- package/audit/audit.module.js +63 -1
- package/audit/controllers/audit.controller.d.ts +88 -0
- package/audit/controllers/audit.controller.js +74 -0
- package/audit/decorators/audit-action.decorator.d.ts +74 -0
- package/audit/decorators/audit-action.decorator.js +42 -0
- package/audit/decorators/audit-controller.decorator.d.ts +9 -1
- package/audit/decorators/audit-controller.decorator.js +11 -2
- package/audit/decorators/audit-operation.decorator.d.ts +45 -0
- package/audit/decorators/audit-operation.decorator.js +49 -0
- package/audit/decorators/entity-audit.decorator.d.ts +85 -1
- package/audit/decorators/entity-audit.decorator.js +153 -3
- package/audit/decorators/index.d.ts +2 -0
- package/audit/decorators/index.js +2 -0
- package/audit/dto/audit-log-query.dto.d.ts +3 -0
- package/audit/dto/audit-log-query.dto.js +3 -0
- package/audit/dto/begin-transaction.dto.d.ts +3 -0
- package/audit/dto/begin-transaction.dto.js +3 -0
- package/audit/dto/compare-entities.dto.d.ts +3 -0
- package/audit/dto/compare-entities.dto.js +3 -0
- package/audit/dto/pre-check-restore.dto.d.ts +3 -0
- package/audit/dto/pre-check-restore.dto.js +3 -0
- package/audit/dto/restore-entity.dto.d.ts +3 -0
- package/audit/dto/restore-entity.dto.js +3 -0
- package/audit/entities/audit-action-summary.entity.d.ts +23 -0
- package/audit/entities/audit-action-summary.entity.js +101 -0
- package/audit/entities/entity-audit-log.entity.d.ts +11 -0
- package/audit/entities/entity-audit-log.entity.js +57 -2
- package/audit/entities/entity-transaction.entity.d.ts +11 -2
- package/audit/entities/entity-transaction.entity.js +42 -3
- package/audit/entities/index.d.ts +3 -0
- package/audit/entities/index.js +3 -0
- package/audit/entities/manual-operation-log.entity.d.ts +4 -0
- package/audit/entities/manual-operation-log.entity.js +12 -1
- package/audit/entities/operation-template.entity.d.ts +4 -0
- package/audit/entities/operation-template.entity.js +4 -0
- package/audit/enums/audit.enums.d.ts +37 -6
- package/audit/enums/audit.enums.js +40 -7
- package/audit/index.d.ts +4 -1
- package/audit/index.js +34 -1
- package/audit/interceptors/audit-action.interceptor.d.ts +38 -0
- package/audit/interceptors/audit-action.interceptor.js +215 -0
- package/audit/interceptors/audit.interceptor.d.ts +15 -0
- package/audit/interceptors/audit.interceptor.js +23 -1
- package/audit/interceptors/index.d.ts +1 -0
- package/audit/interceptors/index.js +1 -0
- package/audit/interfaces/audit.interfaces.d.ts +187 -2
- package/audit/services/audit-action.service.d.ts +141 -0
- package/audit/services/audit-action.service.js +244 -0
- package/audit/services/audit-context.service.d.ts +97 -0
- package/audit/services/audit-context.service.js +185 -0
- package/audit/services/audit-strategy.service.d.ts +6 -0
- package/audit/services/audit-strategy.service.js +13 -0
- package/audit/services/entity-audit.service.d.ts +230 -3
- package/audit/services/entity-audit.service.js +607 -14
- package/audit/services/index.d.ts +3 -0
- package/audit/services/index.js +3 -0
- package/audit/services/manual-audit-log.service.d.ts +134 -9
- package/audit/services/manual-audit-log.service.js +157 -40
- package/audit/services/multi-database.service.d.ts +9 -2
- package/audit/services/multi-database.service.js +9 -21
- package/audit/services/operation-description.service.d.ts +71 -2
- package/audit/services/operation-description.service.js +231 -20
- package/audit/services/transaction-audit.service.d.ts +30 -0
- package/audit/services/transaction-audit.service.js +53 -5
- package/audit/subscribers/entity-audit.subscriber.d.ts +19 -0
- package/audit/subscribers/entity-audit.subscriber.js +76 -1
- package/cache/cache-metrics.service.d.ts +67 -0
- package/cache/cache-metrics.service.js +68 -4
- package/cache/cache-serialization.service.d.ts +31 -0
- package/cache/cache-serialization.service.js +25 -0
- package/cache/cache.constants.d.ts +9 -0
- package/cache/cache.constants.js +9 -0
- package/cache/cache.health.d.ts +26 -0
- package/cache/cache.health.js +30 -0
- package/cache/cache.module.d.ts +82 -2
- package/cache/cache.module.js +76 -5
- package/cache/cache.service.d.ts +140 -0
- package/cache/cache.service.js +169 -0
- package/cache/cache.warmup.service.d.ts +39 -0
- package/cache/cache.warmup.service.js +32 -0
- package/cache/decorators/cache-evict.decorator.d.ts +47 -0
- package/cache/decorators/cache-evict.decorator.js +56 -0
- package/cache/decorators/cache-put.decorator.d.ts +34 -0
- package/cache/decorators/cache-put.decorator.js +39 -0
- package/cache/decorators/cacheable.decorator.d.ts +40 -0
- package/cache/decorators/cacheable.decorator.js +55 -0
- package/cache/dependencies/callback.dependency.d.ts +33 -0
- package/cache/dependencies/callback.dependency.js +39 -1
- package/cache/dependencies/chain.dependency.d.ts +28 -0
- package/cache/dependencies/chain.dependency.js +34 -0
- package/cache/dependencies/db.dependency.d.ts +83 -7
- package/cache/dependencies/db.dependency.js +89 -14
- package/cache/dependencies/file.dependency.d.ts +32 -0
- package/cache/dependencies/file.dependency.js +34 -0
- package/cache/dependencies/tag.dependency.d.ts +75 -4
- package/cache/dependencies/tag.dependency.js +145 -11
- package/cache/dependencies/time.dependency.d.ts +43 -0
- package/cache/dependencies/time.dependency.js +43 -0
- package/cache/examples/basic-usage.d.ts +15 -0
- package/cache/examples/basic-usage.js +62 -8
- package/cache/index.js +9 -0
- package/cache/interfaces/cache-dependency.interface.d.ts +53 -0
- package/cache/interfaces/cache-options.interface.d.ts +89 -0
- package/cache/interfaces/cache-options.interface.js +6 -0
- package/cache/interfaces/cache-provider.interface.d.ts +78 -0
- package/cache/providers/base-cache.provider.d.ts +14 -0
- package/cache/providers/base-cache.provider.js +16 -0
- package/cache/providers/cls-cache.provider.d.ts +20 -0
- package/cache/providers/cls-cache.provider.js +28 -0
- package/cache/providers/memory-cache.provider.d.ts +43 -0
- package/cache/providers/memory-cache.provider.js +66 -0
- package/cache/providers/redis-cache.provider.d.ts +26 -0
- package/cache/providers/redis-cache.provider.js +29 -0
- package/cache/utils/dependency-manager.util.d.ts +52 -0
- package/cache/utils/dependency-manager.util.js +59 -0
- package/cache/utils/key-generator.util.d.ts +42 -0
- package/cache/utils/key-generator.util.js +53 -1
- package/common/abstract.entity.d.ts +14 -0
- package/common/abstract.entity.js +14 -0
- package/common/boilerplate.polyfill.d.ts +142 -0
- package/common/boilerplate.polyfill.js +18 -1
- package/common/dto/dto-container.d.ts +16 -0
- package/common/dto/dto-container.js +20 -0
- package/common/dto/dto-decorators.d.ts +18 -0
- package/common/dto/dto-decorators.js +14 -0
- package/common/dto/dto-extensions.d.ts +11 -0
- package/common/dto/dto-extensions.js +9 -0
- package/common/dto/dto-service-accessor.d.ts +17 -0
- package/common/dto/dto-service-accessor.js +18 -0
- package/common/dto/dto-transformer.d.ts +12 -0
- package/common/dto/dto-transformer.js +9 -0
- package/common/dto/index.js +2 -0
- package/common/examples/paginate-and-map.example.d.ts +6 -0
- package/common/examples/paginate-and-map.example.js +26 -0
- package/common/utils.d.ts +15 -0
- package/common/utils.js +15 -0
- package/constants/language-code.js +1 -0
- package/decorators/field.decorators.d.ts +1 -1
- package/decorators/field.decorators.js +8 -1
- package/decorators/property.decorators.js +1 -0
- package/decorators/public-route.decorator.js +1 -0
- package/decorators/transform.decorators.d.ts +27 -0
- package/decorators/transform.decorators.js +29 -0
- package/decorators/translate.decorator.js +1 -0
- package/decorators/user.decorator.js +1 -0
- package/decorators/validator.decorators.d.ts +8 -18
- package/decorators/validator.decorators.js +22 -190
- package/file-upload/controllers/file-access.controller.d.ts +23 -0
- package/file-upload/controllers/file-access.controller.js +128 -0
- package/file-upload/decorators/column.decorator.d.ts +151 -0
- package/file-upload/decorators/column.decorator.js +273 -0
- package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
- package/file-upload/decorators/csv-data.decorator.js +85 -0
- package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
- package/file-upload/decorators/csv-import.decorator.js +24 -0
- package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
- package/file-upload/decorators/examples/column-mapping.example.js +122 -0
- package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
- package/file-upload/decorators/excel-data.decorator.js +85 -0
- package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
- package/file-upload/decorators/file-upload.decorator.js +172 -0
- package/file-upload/decorators/index.d.ts +5 -0
- package/file-upload/decorators/index.js +38 -0
- package/file-upload/decorators/process.decorator.d.ts +40 -0
- package/file-upload/decorators/process.decorator.js +52 -0
- package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
- package/file-upload/decorators/validate-data.decorator.js +39 -0
- package/file-upload/dto/create-file.dto.d.ts +24 -0
- package/file-upload/dto/create-file.dto.js +112 -0
- package/file-upload/dto/find-files.dto.d.ts +15 -0
- package/file-upload/dto/find-files.dto.js +76 -0
- package/file-upload/dto/index.d.ts +4 -0
- package/file-upload/dto/index.js +20 -0
- package/file-upload/dto/pagination.dto.d.ts +7 -0
- package/file-upload/dto/pagination.dto.js +39 -0
- package/file-upload/dto/update-file.dto.d.ts +15 -0
- package/file-upload/dto/update-file.dto.js +67 -0
- package/file-upload/entities/file-metadata.entity.d.ts +25 -0
- package/file-upload/entities/file-metadata.entity.js +76 -0
- package/file-upload/entities/file.entity.d.ts +114 -0
- package/file-upload/entities/file.entity.js +350 -0
- package/file-upload/entities/index.d.ts +2 -0
- package/file-upload/entities/index.js +18 -0
- package/file-upload/enums/file-type.enum.d.ts +72 -0
- package/file-upload/enums/file-type.enum.js +212 -0
- package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
- package/file-upload/exceptions/file-upload.exception.js +120 -0
- package/file-upload/exceptions/index.d.ts +1 -0
- package/file-upload/exceptions/index.js +17 -0
- package/file-upload/file-upload.module.d.ts +89 -0
- package/file-upload/file-upload.module.js +292 -0
- package/file-upload/index.d.ts +37 -0
- package/file-upload/index.js +77 -0
- package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
- package/file-upload/interceptors/file-upload.interceptor.js +594 -0
- package/file-upload/interceptors/index.d.ts +1 -0
- package/file-upload/interceptors/index.js +17 -0
- package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
- package/file-upload/interfaces/custom-file-type.interface.js +2 -0
- package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
- package/file-upload/interfaces/file-buffer.interface.js +2 -0
- package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
- package/file-upload/interfaces/file-entity.interface.js +28 -0
- package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
- package/file-upload/interfaces/file-metadata.interface.js +2 -0
- package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
- package/file-upload/interfaces/file-processor.interface.js +2 -0
- package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
- package/file-upload/interfaces/file-upload-options.interface.js +5 -0
- package/file-upload/interfaces/index.d.ts +7 -0
- package/file-upload/interfaces/index.js +24 -0
- package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
- package/file-upload/interfaces/processor-options.interface.js +2 -0
- package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
- package/file-upload/interfaces/storage-provider.interface.js +2 -0
- package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
- package/file-upload/interfaces/upload-options.interface.js +2 -0
- package/file-upload/processors/csv.processor.d.ts +98 -0
- package/file-upload/processors/csv.processor.js +391 -0
- package/file-upload/processors/excel.processor.d.ts +130 -0
- package/file-upload/processors/excel.processor.js +547 -0
- package/file-upload/processors/image.processor.d.ts +199 -0
- package/file-upload/processors/image.processor.js +377 -0
- package/file-upload/providers/index.d.ts +2 -0
- package/file-upload/providers/index.js +18 -0
- package/file-upload/providers/local-storage.provider.d.ts +98 -0
- package/file-upload/providers/local-storage.provider.js +484 -0
- package/file-upload/providers/s3-storage.provider.d.ts +87 -0
- package/file-upload/providers/s3-storage.provider.js +455 -0
- package/file-upload/services/file-signature-validator.service.d.ts +118 -0
- package/file-upload/services/file-signature-validator.service.js +376 -0
- package/file-upload/services/file.service.d.ts +193 -0
- package/file-upload/services/file.service.js +638 -0
- package/file-upload/services/index.d.ts +4 -0
- package/file-upload/services/index.js +20 -0
- package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
- package/file-upload/services/malicious-file-detector.service.js +1234 -0
- package/file-upload/services/mime-registry.service.d.ts +47 -0
- package/file-upload/services/mime-registry.service.js +167 -0
- package/file-upload/utils/checksum.util.d.ts +28 -0
- package/file-upload/utils/checksum.util.js +65 -0
- package/file-upload/utils/dynamic-import.util.d.ts +54 -0
- package/file-upload/utils/dynamic-import.util.js +156 -0
- package/file-upload/utils/filename.util.d.ts +59 -0
- package/file-upload/utils/filename.util.js +184 -0
- package/file-upload/utils/filepath.util.d.ts +70 -0
- package/file-upload/utils/filepath.util.js +152 -0
- package/file-upload/utils/index.d.ts +4 -0
- package/file-upload/utils/index.js +20 -0
- package/filters/constraint-errors.js +1 -0
- package/helpers/common.helper.d.ts +13 -0
- package/helpers/common.helper.js +13 -0
- package/http-client/config/http-client.config.d.ts +20 -0
- package/http-client/config/http-client.config.js +48 -21
- package/http-client/decorators/http-client.decorators.d.ts +55 -14
- package/http-client/decorators/http-client.decorators.js +154 -78
- package/http-client/entities/http-log.entity.d.ts +217 -8
- package/http-client/entities/http-log.entity.js +7 -22
- package/http-client/errors/http-client.errors.d.ts +57 -0
- package/http-client/errors/http-client.errors.js +58 -0
- package/http-client/examples/advanced-usage.example.d.ts +40 -0
- package/http-client/examples/advanced-usage.example.js +53 -61
- package/http-client/examples/auth-with-waiting-lock.example.d.ts +31 -0
- package/http-client/examples/auth-with-waiting-lock.example.js +52 -5
- package/http-client/examples/basic-usage.example.d.ts +60 -0
- package/http-client/examples/basic-usage.example.js +60 -0
- package/http-client/examples/multi-api-configuration.example.d.ts +60 -0
- package/http-client/examples/multi-api-configuration.example.js +76 -5
- package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
- package/http-client/examples/proxy-from-environment.example.js +409 -0
- package/http-client/http-client.module.d.ts +48 -2
- package/http-client/http-client.module.js +147 -68
- package/http-client/index.d.ts +1 -1
- package/http-client/index.js +8 -0
- package/http-client/interfaces/api-client-config.interface.d.ts +80 -45
- package/http-client/interfaces/api-client-config.interface.js +3 -0
- package/http-client/interfaces/http-client-config.interface.d.ts +109 -52
- package/http-client/services/api-client-registry.service.d.ts +50 -11
- package/http-client/services/api-client-registry.service.js +90 -250
- package/http-client/services/circuit-breaker.service.d.ts +115 -2
- package/http-client/services/circuit-breaker.service.js +237 -7
- package/http-client/services/http-client.service.d.ts +124 -14
- package/http-client/services/http-client.service.js +437 -148
- package/http-client/services/http-log-query.service.d.ts +83 -0
- package/http-client/services/http-log-query.service.js +121 -13
- package/http-client/services/http-replay.service.d.ts +101 -0
- package/http-client/services/http-replay.service.js +86 -0
- package/http-client/services/index.d.ts +0 -1
- package/http-client/services/index.js +0 -1
- package/http-client/services/log-cleanup.service.d.ts +63 -0
- package/http-client/services/log-cleanup.service.js +54 -2
- package/http-client/services/logging.service.d.ts +116 -7
- package/http-client/services/logging.service.js +349 -86
- package/http-client/utils/call-stack-extractor.util.d.ts +63 -0
- package/http-client/utils/call-stack-extractor.util.js +83 -0
- package/http-client/utils/context-extractor.util.d.ts +49 -0
- package/http-client/utils/context-extractor.util.js +52 -0
- package/http-client/utils/curl-generator.util.d.ts +21 -0
- package/http-client/utils/curl-generator.util.js +44 -3
- package/http-client/utils/index.d.ts +1 -0
- package/http-client/utils/index.js +1 -0
- package/http-client/utils/proxy-environment.util.d.ts +42 -0
- package/http-client/utils/proxy-environment.util.js +148 -0
- package/http-client/utils/request-id.util.d.ts +18 -0
- package/http-client/utils/request-id.util.js +20 -0
- package/http-client/utils/retry-recorder.util.d.ts +42 -0
- package/http-client/utils/retry-recorder.util.js +44 -0
- package/http-client/utils/security-validator.util.d.ts +118 -0
- package/http-client/utils/security-validator.util.js +352 -0
- package/index.d.ts +3 -1
- package/index.js +12 -1
- package/interceptors/translation-interceptor.service.js +5 -0
- package/package.json +11 -7
- package/providers/context.provider.js +2 -0
- package/providers/generator.provider.d.ts +4 -0
- package/providers/generator.provider.js +4 -0
- package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
- package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
- package/redis-lock/examples/lock-strategy.examples.d.ts +89 -0
- package/redis-lock/examples/lock-strategy.examples.js +130 -15
- package/redis-lock/index.d.ts +2 -0
- package/redis-lock/index.js +8 -1
- package/redis-lock/lock-heartbeat.service.d.ts +80 -0
- package/redis-lock/lock-heartbeat.service.js +232 -0
- package/redis-lock/redis-lock.decorator.d.ts +101 -0
- package/redis-lock/redis-lock.decorator.js +120 -0
- package/redis-lock/redis-lock.module.d.ts +66 -0
- package/redis-lock/redis-lock.module.js +175 -70
- package/redis-lock/redis-lock.service.d.ts +282 -0
- package/redis-lock/redis-lock.service.js +343 -20
- package/setup/bootstrap.setup.d.ts +1 -0
- package/setup/bootstrap.setup.js +21 -0
- package/setup/index.d.ts +1 -0
- package/setup/index.js +1 -0
- package/setup/mode.setup.d.ts +44 -0
- package/setup/mode.setup.js +44 -0
- package/setup/run-in-mode.decorator.d.ts +56 -0
- package/setup/run-in-mode.decorator.js +92 -0
- package/setup/schedule.decorator.d.ts +227 -0
- package/setup/schedule.decorator.js +240 -12
- package/setup/worker.decorator.d.ts +86 -0
- package/setup/worker.decorator.js +97 -0
- package/shared/index.d.ts +1 -1
- package/shared/index.js +1 -1
- package/shared/{serviceRegistryModule.js → service-registry.module.js} +19 -17
- package/shared/services/api-config.service.d.ts +3 -0
- package/shared/services/api-config.service.js +21 -9
- package/shared/services/index.d.ts +0 -1
- package/shared/services/index.js +0 -1
- package/validator-json/decorators.d.ts +17 -0
- package/validator-json/decorators.js +17 -2
- package/validator-json/default.d.ts +6 -0
- package/validator-json/default.js +30 -2
- package/validator-json/defaultConverters.js +1 -0
- package/validator-json/options.d.ts +23 -0
- package/validators/common-validators.d.ts +143 -0
- package/validators/common-validators.js +249 -0
- package/validators/custom-validate.examples.d.ts +23 -0
- package/validators/custom-validate.examples.js +78 -6
- package/validators/custom-validate.validator.d.ts +108 -0
- package/validators/custom-validate.validator.js +85 -0
- package/validators/file-mimetype.validator.d.ts +0 -2
- package/validators/file-mimetype.validator.js +4 -6
- package/validators/index.d.ts +1 -0
- package/validators/index.js +1 -0
- package/validators/is-exists.validator.d.ts +26 -6
- package/validators/is-exists.validator.js +30 -7
- package/validators/is-unique.validator.d.ts +33 -7
- package/validators/is-unique.validator.js +59 -17
- package/validators/skip-empty.validator.d.ts +5 -0
- package/validators/skip-empty.validator.js +5 -0
- package/vault/interfaces/vault-options.interface.d.ts +9 -0
- package/vault/vault-config.loader.d.ts +30 -0
- package/vault/vault-config.loader.js +48 -1
- package/vault/vault-config.service.d.ts +53 -0
- package/vault/vault-config.service.js +57 -0
- package/vault/vault.module.d.ts +4 -0
- package/vault/vault.module.js +4 -0
- package/decorators/examples/validation-decorators.example.d.ts +0 -69
- package/decorators/examples/validation-decorators.example.js +0 -331
- package/http-client/services/cache.service.d.ts +0 -24
- package/http-client/services/cache.service.js +0 -264
- package/shared/services/validator.service.d.ts +0 -3
- package/shared/services/validator.service.js +0 -20
- /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
|
@@ -1,19 +1,55 @@
|
|
|
1
1
|
import { HttpClientService, HttpLogQueryService } from '../services';
|
|
2
2
|
import { HttpLogQueryOptions } from '../entities';
|
|
3
|
+
/**
|
|
4
|
+
* 基本使用示例
|
|
5
|
+
*/
|
|
3
6
|
export declare class BasicHttpExample {
|
|
4
7
|
private readonly httpClient;
|
|
5
8
|
private readonly logQueryService;
|
|
6
9
|
constructor(httpClient: HttpClientService, logQueryService: HttpLogQueryService);
|
|
10
|
+
/**
|
|
11
|
+
* 简单GET请求
|
|
12
|
+
*/
|
|
7
13
|
getUser(id: string): Promise<any>;
|
|
14
|
+
/**
|
|
15
|
+
* 带参数的GET请求
|
|
16
|
+
*/
|
|
8
17
|
searchUsers(query: string, page?: number, limit?: number): Promise<any>;
|
|
18
|
+
/**
|
|
19
|
+
* POST请求
|
|
20
|
+
*/
|
|
9
21
|
createUser(userData: any): Promise<any>;
|
|
22
|
+
/**
|
|
23
|
+
* PUT请求
|
|
24
|
+
*/
|
|
10
25
|
updateUser(id: string, userData: any): Promise<any>;
|
|
26
|
+
/**
|
|
27
|
+
* DELETE请求
|
|
28
|
+
*/
|
|
11
29
|
deleteUser(id: string): Promise<any>;
|
|
30
|
+
/**
|
|
31
|
+
* 文件上传
|
|
32
|
+
*/
|
|
12
33
|
uploadFile(file: Buffer, filename: string): Promise<any>;
|
|
34
|
+
/**
|
|
35
|
+
* 自定义请求配置
|
|
36
|
+
*/
|
|
13
37
|
customRequest(): Promise<any>;
|
|
38
|
+
/**
|
|
39
|
+
* 获取统计信息
|
|
40
|
+
*/
|
|
14
41
|
getStatistics(): any;
|
|
42
|
+
/**
|
|
43
|
+
* 重置统计信息
|
|
44
|
+
*/
|
|
15
45
|
resetStatistics(): void;
|
|
46
|
+
/**
|
|
47
|
+
* 生成curl命令
|
|
48
|
+
*/
|
|
16
49
|
generateCurlForRequest(url: string, method?: string, data?: any): string;
|
|
50
|
+
/**
|
|
51
|
+
* 查询HTTP日志
|
|
52
|
+
*/
|
|
17
53
|
queryHttpLogs(options?: HttpLogQueryOptions): Promise<{
|
|
18
54
|
logs: import("../entities").HttpLogEntity[];
|
|
19
55
|
total: number;
|
|
@@ -21,18 +57,30 @@ export declare class BasicHttpExample {
|
|
|
21
57
|
limit: number;
|
|
22
58
|
totalPages: number;
|
|
23
59
|
}>;
|
|
60
|
+
/**
|
|
61
|
+
* 查询错误日志
|
|
62
|
+
*/
|
|
24
63
|
findErrorLogs(limit?: number): Promise<{
|
|
25
64
|
logs: import("../entities").HttpLogEntity[];
|
|
26
65
|
total: number;
|
|
27
66
|
}>;
|
|
67
|
+
/**
|
|
68
|
+
* 查询慢请求
|
|
69
|
+
*/
|
|
28
70
|
findSlowRequests(minResponseTime?: number): Promise<{
|
|
29
71
|
logs: import("../entities").HttpLogEntity[];
|
|
30
72
|
total: number;
|
|
31
73
|
}>;
|
|
74
|
+
/**
|
|
75
|
+
* 查询重试日志
|
|
76
|
+
*/
|
|
32
77
|
findRetryLogs(minRetries?: number): Promise<{
|
|
33
78
|
logs: import("../entities").HttpLogEntity[];
|
|
34
79
|
total: number;
|
|
35
80
|
}>;
|
|
81
|
+
/**
|
|
82
|
+
* 根据服务名称查询日志
|
|
83
|
+
*/
|
|
36
84
|
findLogsByServiceName(serviceName: string, limit?: number): Promise<{
|
|
37
85
|
logs: import("../entities").HttpLogEntity[];
|
|
38
86
|
total: number;
|
|
@@ -40,6 +88,9 @@ export declare class BasicHttpExample {
|
|
|
40
88
|
limit: number;
|
|
41
89
|
totalPages: number;
|
|
42
90
|
}>;
|
|
91
|
+
/**
|
|
92
|
+
* 根据操作名称查询日志
|
|
93
|
+
*/
|
|
43
94
|
findLogsByOperationName(operationName: string, limit?: number): Promise<{
|
|
44
95
|
logs: import("../entities").HttpLogEntity[];
|
|
45
96
|
total: number;
|
|
@@ -47,7 +98,16 @@ export declare class BasicHttpExample {
|
|
|
47
98
|
limit: number;
|
|
48
99
|
totalPages: number;
|
|
49
100
|
}>;
|
|
101
|
+
/**
|
|
102
|
+
* 获取HTTP统计信息
|
|
103
|
+
*/
|
|
50
104
|
getHttpStats(startDate?: Date, endDate?: Date): Promise<import("../entities").HttpLogStats>;
|
|
105
|
+
/**
|
|
106
|
+
* 根据请求ID查询日志
|
|
107
|
+
*/
|
|
51
108
|
findLogByRequestId(requestId: string): Promise<import("../entities").HttpLogEntity>;
|
|
109
|
+
/**
|
|
110
|
+
* 清理旧日志
|
|
111
|
+
*/
|
|
52
112
|
cleanupOldLogs(daysToKeep?: number): Promise<number>;
|
|
53
113
|
}
|
|
@@ -21,16 +21,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
exports.BasicHttpExample = void 0;
|
|
22
22
|
const common_1 = require("@nestjs/common");
|
|
23
23
|
const services_1 = require("../services");
|
|
24
|
+
/**
|
|
25
|
+
* 基本使用示例
|
|
26
|
+
*/
|
|
24
27
|
let BasicHttpExample = class BasicHttpExample {
|
|
25
28
|
constructor(httpClient, logQueryService) {
|
|
26
29
|
this.httpClient = httpClient;
|
|
27
30
|
this.logQueryService = logQueryService;
|
|
28
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* 简单GET请求
|
|
34
|
+
*/
|
|
29
35
|
getUser(id) {
|
|
30
36
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
37
|
return this.httpClient.get(`/users/${id}`);
|
|
32
38
|
});
|
|
33
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* 带参数的GET请求
|
|
42
|
+
*/
|
|
34
43
|
searchUsers(query_1) {
|
|
35
44
|
return __awaiter(this, arguments, void 0, function* (query, page = 1, limit = 10) {
|
|
36
45
|
return this.httpClient.get('/users', {
|
|
@@ -42,6 +51,9 @@ let BasicHttpExample = class BasicHttpExample {
|
|
|
42
51
|
});
|
|
43
52
|
});
|
|
44
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* POST请求
|
|
56
|
+
*/
|
|
45
57
|
createUser(userData) {
|
|
46
58
|
return __awaiter(this, void 0, void 0, function* () {
|
|
47
59
|
return this.httpClient.post('/users', userData, {
|
|
@@ -51,16 +63,25 @@ let BasicHttpExample = class BasicHttpExample {
|
|
|
51
63
|
});
|
|
52
64
|
});
|
|
53
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* PUT请求
|
|
68
|
+
*/
|
|
54
69
|
updateUser(id, userData) {
|
|
55
70
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
71
|
return this.httpClient.put(`/users/${id}`, userData);
|
|
57
72
|
});
|
|
58
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* DELETE请求
|
|
76
|
+
*/
|
|
59
77
|
deleteUser(id) {
|
|
60
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
79
|
return this.httpClient.delete(`/users/${id}`);
|
|
62
80
|
});
|
|
63
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* 文件上传
|
|
84
|
+
*/
|
|
64
85
|
uploadFile(file, filename) {
|
|
65
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
87
|
const formData = new FormData();
|
|
@@ -72,6 +93,9 @@ let BasicHttpExample = class BasicHttpExample {
|
|
|
72
93
|
});
|
|
73
94
|
});
|
|
74
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* 自定义请求配置
|
|
98
|
+
*/
|
|
75
99
|
customRequest() {
|
|
76
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
77
101
|
return this.httpClient.request({
|
|
@@ -89,12 +113,21 @@ let BasicHttpExample = class BasicHttpExample {
|
|
|
89
113
|
});
|
|
90
114
|
});
|
|
91
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* 获取统计信息
|
|
118
|
+
*/
|
|
92
119
|
getStatistics() {
|
|
93
120
|
return this.httpClient.getStats();
|
|
94
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* 重置统计信息
|
|
124
|
+
*/
|
|
95
125
|
resetStatistics() {
|
|
96
126
|
this.httpClient.resetStats();
|
|
97
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* 生成curl命令
|
|
130
|
+
*/
|
|
98
131
|
generateCurlForRequest(url, method = 'GET', data) {
|
|
99
132
|
const config = {
|
|
100
133
|
url,
|
|
@@ -107,46 +140,73 @@ let BasicHttpExample = class BasicHttpExample {
|
|
|
107
140
|
};
|
|
108
141
|
return this.httpClient.generateCurlCommand(config);
|
|
109
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* 查询HTTP日志
|
|
145
|
+
*/
|
|
110
146
|
queryHttpLogs() {
|
|
111
147
|
return __awaiter(this, arguments, void 0, function* (options = {}) {
|
|
112
148
|
return this.logQueryService.findLogs(options);
|
|
113
149
|
});
|
|
114
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* 查询错误日志
|
|
153
|
+
*/
|
|
115
154
|
findErrorLogs() {
|
|
116
155
|
return __awaiter(this, arguments, void 0, function* (limit = 10) {
|
|
117
156
|
return this.logQueryService.findErrorLogs({ limit });
|
|
118
157
|
});
|
|
119
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* 查询慢请求
|
|
161
|
+
*/
|
|
120
162
|
findSlowRequests() {
|
|
121
163
|
return __awaiter(this, arguments, void 0, function* (minResponseTime = 5000) {
|
|
122
164
|
return this.logQueryService.findSlowRequests(minResponseTime);
|
|
123
165
|
});
|
|
124
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* 查询重试日志
|
|
169
|
+
*/
|
|
125
170
|
findRetryLogs() {
|
|
126
171
|
return __awaiter(this, arguments, void 0, function* (minRetries = 2) {
|
|
127
172
|
return this.logQueryService.findRetryLogs({ minRetries });
|
|
128
173
|
});
|
|
129
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* 根据服务名称查询日志
|
|
177
|
+
*/
|
|
130
178
|
findLogsByServiceName(serviceName_1) {
|
|
131
179
|
return __awaiter(this, arguments, void 0, function* (serviceName, limit = 20) {
|
|
132
180
|
return this.logQueryService.findLogs({ serviceName, limit });
|
|
133
181
|
});
|
|
134
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* 根据操作名称查询日志
|
|
185
|
+
*/
|
|
135
186
|
findLogsByOperationName(operationName_1) {
|
|
136
187
|
return __awaiter(this, arguments, void 0, function* (operationName, limit = 20) {
|
|
137
188
|
return this.logQueryService.findLogs({ operationName, limit });
|
|
138
189
|
});
|
|
139
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* 获取HTTP统计信息
|
|
193
|
+
*/
|
|
140
194
|
getHttpStats(startDate, endDate) {
|
|
141
195
|
return __awaiter(this, void 0, void 0, function* () {
|
|
142
196
|
return this.logQueryService.getStats({ startDate, endDate });
|
|
143
197
|
});
|
|
144
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* 根据请求ID查询日志
|
|
201
|
+
*/
|
|
145
202
|
findLogByRequestId(requestId) {
|
|
146
203
|
return __awaiter(this, void 0, void 0, function* () {
|
|
147
204
|
return this.logQueryService.findLogByRequestId(requestId);
|
|
148
205
|
});
|
|
149
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* 清理旧日志
|
|
209
|
+
*/
|
|
150
210
|
cleanupOldLogs() {
|
|
151
211
|
return __awaiter(this, arguments, void 0, function* (daysToKeep = 30) {
|
|
152
212
|
return this.logQueryService.deleteOldLogs(daysToKeep);
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import { ApiClientInstanceConfig, ApiClientRegistryService } from '../services/api-client-registry.service';
|
|
2
|
+
/**
|
|
3
|
+
* GitHub API 客户端示例
|
|
4
|
+
*/
|
|
2
5
|
export declare class GitHubApiService {
|
|
3
6
|
private readonly apiRegistry;
|
|
4
7
|
constructor(apiRegistry: ApiClientRegistryService);
|
|
8
|
+
/**
|
|
9
|
+
* 获取GitHub客户端
|
|
10
|
+
*/
|
|
5
11
|
get github(): GitHubApiClient;
|
|
6
12
|
private initializeClients;
|
|
7
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* GitHub API 类型定义
|
|
16
|
+
*/
|
|
8
17
|
export interface GitHubApiClient {
|
|
9
18
|
get<T = any>(url: string, config?: any): Promise<T>;
|
|
10
19
|
post<T = any>(url: string, data?: any, config?: any): Promise<T>;
|
|
@@ -14,6 +23,9 @@ export interface GitHubApiClient {
|
|
|
14
23
|
getStats(): any;
|
|
15
24
|
resetStats(): void;
|
|
16
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Stripe API 客户端示例
|
|
28
|
+
*/
|
|
17
29
|
export declare class StripeApiService {
|
|
18
30
|
private readonly apiRegistry;
|
|
19
31
|
constructor(apiRegistry: ApiClientRegistryService);
|
|
@@ -27,6 +39,9 @@ export interface StripeApiClient {
|
|
|
27
39
|
getStats(): any;
|
|
28
40
|
resetStats(): void;
|
|
29
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* 微信API客户端示例
|
|
44
|
+
*/
|
|
30
45
|
export declare class WeChatApiService {
|
|
31
46
|
private readonly apiRegistry;
|
|
32
47
|
constructor(apiRegistry: ApiClientRegistryService);
|
|
@@ -40,6 +55,9 @@ export interface WeChatApiClient {
|
|
|
40
55
|
getStats(): any;
|
|
41
56
|
resetStats(): void;
|
|
42
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* 自定义API客户端示例(复杂响应格式)
|
|
60
|
+
*/
|
|
43
61
|
export declare class CustomApiService {
|
|
44
62
|
private readonly apiRegistry;
|
|
45
63
|
constructor(apiRegistry: ApiClientRegistryService);
|
|
@@ -59,12 +77,27 @@ export interface CustomApiClient {
|
|
|
59
77
|
getStats(): any;
|
|
60
78
|
resetStats(): void;
|
|
61
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* API管理服务示例
|
|
82
|
+
*/
|
|
62
83
|
export declare class ApiManagementService {
|
|
63
84
|
private readonly apiRegistry;
|
|
64
85
|
constructor(apiRegistry: ApiClientRegistryService);
|
|
86
|
+
/**
|
|
87
|
+
* 动态创建API客户端
|
|
88
|
+
*/
|
|
65
89
|
createDynamicClient(name: string, config: Partial<ApiClientInstanceConfig>): any;
|
|
90
|
+
/**
|
|
91
|
+
* 获取所有客户端统计信息
|
|
92
|
+
*/
|
|
66
93
|
getAllStats(): Record<string, any>;
|
|
94
|
+
/**
|
|
95
|
+
* 重置所有统计信息
|
|
96
|
+
*/
|
|
67
97
|
resetAllStats(): void;
|
|
98
|
+
/**
|
|
99
|
+
* 健康检查
|
|
100
|
+
*/
|
|
68
101
|
healthCheck(): Promise<{
|
|
69
102
|
status: "healthy" | "unhealthy";
|
|
70
103
|
clients: Record<string, {
|
|
@@ -72,9 +105,18 @@ export declare class ApiManagementService {
|
|
|
72
105
|
error?: string;
|
|
73
106
|
}>;
|
|
74
107
|
}>;
|
|
108
|
+
/**
|
|
109
|
+
* 批量创建客户端
|
|
110
|
+
*/
|
|
75
111
|
createMultipleClients(configs: ApiClientInstanceConfig[]): void;
|
|
112
|
+
/**
|
|
113
|
+
* 获取客户端列表
|
|
114
|
+
*/
|
|
76
115
|
listClients(): string[];
|
|
77
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* 使用示例控制器
|
|
119
|
+
*/
|
|
78
120
|
export declare class ExampleController {
|
|
79
121
|
private readonly githubApi;
|
|
80
122
|
private readonly stripeApi;
|
|
@@ -82,11 +124,29 @@ export declare class ExampleController {
|
|
|
82
124
|
private readonly customApi;
|
|
83
125
|
private readonly apiManagement;
|
|
84
126
|
constructor(githubApi: GitHubApiService, stripeApi: StripeApiService, wechatApi: WeChatApiService, customApi: CustomApiService, apiManagement: ApiManagementService);
|
|
127
|
+
/**
|
|
128
|
+
* GitHub API 示例
|
|
129
|
+
*/
|
|
85
130
|
getGitHubUser(username: string): Promise<any>;
|
|
131
|
+
/**
|
|
132
|
+
* Stripe API 示例
|
|
133
|
+
*/
|
|
86
134
|
createStripePayment(amount: number, currency: string): Promise<any>;
|
|
135
|
+
/**
|
|
136
|
+
* 微信 API 示例
|
|
137
|
+
*/
|
|
87
138
|
sendWeChatMessage(openid: string, content: string): Promise<any>;
|
|
139
|
+
/**
|
|
140
|
+
* 自定义API 示例
|
|
141
|
+
*/
|
|
88
142
|
getCustomData(id: string): Promise<any>;
|
|
143
|
+
/**
|
|
144
|
+
* 动态API示例
|
|
145
|
+
*/
|
|
89
146
|
callDynamicApi(url: string): Promise<any>;
|
|
147
|
+
/**
|
|
148
|
+
* API管理示例
|
|
149
|
+
*/
|
|
90
150
|
getApiHealth(): Promise<{
|
|
91
151
|
status: "healthy" | "unhealthy";
|
|
92
152
|
clients: Record<string, {
|
|
@@ -21,11 +21,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
exports.ExampleController = exports.ApiManagementService = exports.CustomApiService = exports.WeChatApiService = exports.StripeApiService = exports.GitHubApiService = void 0;
|
|
22
22
|
const common_1 = require("@nestjs/common");
|
|
23
23
|
const api_client_registry_service_1 = require("../services/api-client-registry.service");
|
|
24
|
+
/**
|
|
25
|
+
* GitHub API 客户端示例
|
|
26
|
+
*/
|
|
24
27
|
let GitHubApiService = class GitHubApiService {
|
|
25
28
|
constructor(apiRegistry) {
|
|
26
29
|
this.apiRegistry = apiRegistry;
|
|
27
30
|
this.initializeClients();
|
|
28
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* 获取GitHub客户端
|
|
34
|
+
*/
|
|
29
35
|
get github() {
|
|
30
36
|
return this.apiRegistry.getClient('github');
|
|
31
37
|
}
|
|
@@ -40,10 +46,11 @@ let GitHubApiService = class GitHubApiService {
|
|
|
40
46
|
},
|
|
41
47
|
},
|
|
42
48
|
responseTransformer: {
|
|
43
|
-
dataPath: 'data',
|
|
49
|
+
dataPath: 'data', // GitHub API通常返回 { data: [...] }
|
|
44
50
|
success: (response) => response.data,
|
|
45
51
|
error: (error) => {
|
|
46
52
|
var _a, _b;
|
|
53
|
+
// GitHub API 错误处理
|
|
47
54
|
if ((_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) {
|
|
48
55
|
throw new Error(`GitHub API Error: ${error.response.data.message}`);
|
|
49
56
|
}
|
|
@@ -55,10 +62,11 @@ let GitHubApiService = class GitHubApiService {
|
|
|
55
62
|
retries: 3,
|
|
56
63
|
retryCondition: (error) => {
|
|
57
64
|
var _a, _b;
|
|
65
|
+
// GitHub API 速率限制时重试
|
|
58
66
|
return (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 403 || ((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) === 429);
|
|
59
67
|
},
|
|
60
68
|
},
|
|
61
|
-
responseTimeWarningThreshold: 2000,
|
|
69
|
+
responseTimeWarningThreshold: 2000, // 2秒警告
|
|
62
70
|
tags: ['github', 'vcs'],
|
|
63
71
|
});
|
|
64
72
|
}
|
|
@@ -68,6 +76,9 @@ exports.GitHubApiService = GitHubApiService = __decorate([
|
|
|
68
76
|
(0, common_1.Injectable)(),
|
|
69
77
|
__metadata("design:paramtypes", [api_client_registry_service_1.ApiClientRegistryService])
|
|
70
78
|
], GitHubApiService);
|
|
79
|
+
/**
|
|
80
|
+
* Stripe API 客户端示例
|
|
81
|
+
*/
|
|
71
82
|
let StripeApiService = class StripeApiService {
|
|
72
83
|
constructor(apiRegistry) {
|
|
73
84
|
this.apiRegistry = apiRegistry;
|
|
@@ -94,13 +105,14 @@ let StripeApiService = class StripeApiService {
|
|
|
94
105
|
dataPath: 'data',
|
|
95
106
|
error: (error) => {
|
|
96
107
|
var _a, _b, _c;
|
|
108
|
+
// Stripe API 错误处理
|
|
97
109
|
if ((_c = (_b = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.error) === null || _c === void 0 ? void 0 : _c.message) {
|
|
98
110
|
throw new Error(`Stripe API Error: ${error.response.data.error.message}`);
|
|
99
111
|
}
|
|
100
112
|
throw error;
|
|
101
113
|
},
|
|
102
114
|
},
|
|
103
|
-
responseTimeWarningThreshold: 3000,
|
|
115
|
+
responseTimeWarningThreshold: 3000, // 3秒警告
|
|
104
116
|
tags: ['stripe', 'payment'],
|
|
105
117
|
});
|
|
106
118
|
}
|
|
@@ -110,6 +122,9 @@ exports.StripeApiService = StripeApiService = __decorate([
|
|
|
110
122
|
(0, common_1.Injectable)(),
|
|
111
123
|
__metadata("design:paramtypes", [api_client_registry_service_1.ApiClientRegistryService])
|
|
112
124
|
], StripeApiService);
|
|
125
|
+
/**
|
|
126
|
+
* 微信API客户端示例
|
|
127
|
+
*/
|
|
113
128
|
let WeChatApiService = class WeChatApiService {
|
|
114
129
|
constructor(apiRegistry) {
|
|
115
130
|
this.apiRegistry = apiRegistry;
|
|
@@ -123,10 +138,11 @@ let WeChatApiService = class WeChatApiService {
|
|
|
123
138
|
name: 'wechat',
|
|
124
139
|
baseURL: 'https://api.weixin.qq.com',
|
|
125
140
|
auth: {
|
|
126
|
-
type: api_client_registry_service_1.AuthType.NONE,
|
|
141
|
+
type: api_client_registry_service_1.AuthType.NONE, // 微信API通常使用签名验证
|
|
127
142
|
},
|
|
128
143
|
responseTransformer: {
|
|
129
144
|
success: (response) => {
|
|
145
|
+
// 微信API响应格式: { errcode: 0, errmsg: 'success', data: {...} }
|
|
130
146
|
if (response.data.errcode !== 0) {
|
|
131
147
|
throw new Error(`WeChat API Error (${response.data.errcode}): ${response.data.errmsg}`);
|
|
132
148
|
}
|
|
@@ -136,7 +152,7 @@ let WeChatApiService = class WeChatApiService {
|
|
|
136
152
|
tags: ['wechat', 'social'],
|
|
137
153
|
environments: {
|
|
138
154
|
development: {
|
|
139
|
-
baseURL: 'https://api.tunnel.com/wechat',
|
|
155
|
+
baseURL: 'https://api.tunnel.com/wechat', // 开发环境使用隧道
|
|
140
156
|
},
|
|
141
157
|
},
|
|
142
158
|
});
|
|
@@ -147,6 +163,9 @@ exports.WeChatApiService = WeChatApiService = __decorate([
|
|
|
147
163
|
(0, common_1.Injectable)(),
|
|
148
164
|
__metadata("design:paramtypes", [api_client_registry_service_1.ApiClientRegistryService])
|
|
149
165
|
], WeChatApiService);
|
|
166
|
+
/**
|
|
167
|
+
* 自定义API客户端示例(复杂响应格式)
|
|
168
|
+
*/
|
|
150
169
|
let CustomApiService = class CustomApiService {
|
|
151
170
|
constructor(apiRegistry) {
|
|
152
171
|
this.apiRegistry = apiRegistry;
|
|
@@ -164,6 +183,7 @@ let CustomApiService = class CustomApiService {
|
|
|
164
183
|
config: {
|
|
165
184
|
authenticator(config) {
|
|
166
185
|
return __awaiter(this, void 0, void 0, function* () {
|
|
186
|
+
// 自定义JWT token刷新逻辑
|
|
167
187
|
const token = yield this.getValidToken();
|
|
168
188
|
config.headers = Object.assign(Object.assign({}, config.headers), { Authorization: `Bearer ${token}`, 'X-Timestamp': Date.now().toString(), 'X-Signature': this.generateSignature(config) });
|
|
169
189
|
return config;
|
|
@@ -172,6 +192,7 @@ let CustomApiService = class CustomApiService {
|
|
|
172
192
|
refresher(config, error) {
|
|
173
193
|
return __awaiter(this, void 0, void 0, function* () {
|
|
174
194
|
var _a;
|
|
195
|
+
// Token过期时自动刷新
|
|
175
196
|
if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {
|
|
176
197
|
const newToken = yield this.refreshToken();
|
|
177
198
|
config.headers['Authorization'] = `Bearer ${newToken}`;
|
|
@@ -184,10 +205,13 @@ let CustomApiService = class CustomApiService {
|
|
|
184
205
|
},
|
|
185
206
|
responseTransformer: {
|
|
186
207
|
success: (response) => {
|
|
208
|
+
// 复杂响应格式处理
|
|
187
209
|
const result = response.data;
|
|
210
|
+
// 统一成功格式
|
|
188
211
|
if (result.success === false) {
|
|
189
212
|
throw new Error(result.message || 'API request failed');
|
|
190
213
|
}
|
|
214
|
+
// 数据包装处理
|
|
191
215
|
return {
|
|
192
216
|
data: result.data || result,
|
|
193
217
|
code: result.code || 0,
|
|
@@ -198,6 +222,7 @@ let CustomApiService = class CustomApiService {
|
|
|
198
222
|
},
|
|
199
223
|
error: (error) => {
|
|
200
224
|
var _a;
|
|
225
|
+
// 统一错误格式
|
|
201
226
|
if ((_a = error.response) === null || _a === void 0 ? void 0 : _a.data) {
|
|
202
227
|
const errorData = error.response.data;
|
|
203
228
|
const customError = new Error(errorData.message || 'API request failed');
|
|
@@ -216,6 +241,7 @@ let CustomApiService = class CustomApiService {
|
|
|
216
241
|
enabled: true,
|
|
217
242
|
retries: 2,
|
|
218
243
|
retryCondition: (error) => {
|
|
244
|
+
// 只对网络错误和5xx错误重试
|
|
219
245
|
if (!error.response)
|
|
220
246
|
return true;
|
|
221
247
|
return error.response.status >= 500;
|
|
@@ -226,15 +252,18 @@ let CustomApiService = class CustomApiService {
|
|
|
226
252
|
}
|
|
227
253
|
getValidToken() {
|
|
228
254
|
return __awaiter(this, void 0, void 0, function* () {
|
|
255
|
+
// 实现token获取逻辑
|
|
229
256
|
return 'mock-jwt-token';
|
|
230
257
|
});
|
|
231
258
|
}
|
|
232
259
|
refreshToken() {
|
|
233
260
|
return __awaiter(this, void 0, void 0, function* () {
|
|
261
|
+
// 实现token刷新逻辑
|
|
234
262
|
return 'refreshed-jwt-token';
|
|
235
263
|
});
|
|
236
264
|
}
|
|
237
265
|
generateSignature(config) {
|
|
266
|
+
// 实现签名生成逻辑
|
|
238
267
|
return 'mock-signature';
|
|
239
268
|
}
|
|
240
269
|
};
|
|
@@ -243,27 +272,48 @@ exports.CustomApiService = CustomApiService = __decorate([
|
|
|
243
272
|
(0, common_1.Injectable)(),
|
|
244
273
|
__metadata("design:paramtypes", [api_client_registry_service_1.ApiClientRegistryService])
|
|
245
274
|
], CustomApiService);
|
|
275
|
+
/**
|
|
276
|
+
* API管理服务示例
|
|
277
|
+
*/
|
|
246
278
|
let ApiManagementService = class ApiManagementService {
|
|
247
279
|
constructor(apiRegistry) {
|
|
248
280
|
this.apiRegistry = apiRegistry;
|
|
249
281
|
}
|
|
282
|
+
/**
|
|
283
|
+
* 动态创建API客户端
|
|
284
|
+
*/
|
|
250
285
|
createDynamicClient(name, config) {
|
|
251
286
|
return this.apiRegistry.createClient(Object.assign({ name, baseURL: config.baseURL || '' }, config));
|
|
252
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* 获取所有客户端统计信息
|
|
290
|
+
*/
|
|
253
291
|
getAllStats() {
|
|
254
292
|
return this.apiRegistry.getAllStats();
|
|
255
293
|
}
|
|
294
|
+
/**
|
|
295
|
+
* 重置所有统计信息
|
|
296
|
+
*/
|
|
256
297
|
resetAllStats() {
|
|
257
298
|
this.apiRegistry.resetAllStats();
|
|
258
299
|
}
|
|
300
|
+
/**
|
|
301
|
+
* 健康检查
|
|
302
|
+
*/
|
|
259
303
|
healthCheck() {
|
|
260
304
|
return __awaiter(this, void 0, void 0, function* () {
|
|
261
305
|
return this.apiRegistry.healthCheck();
|
|
262
306
|
});
|
|
263
307
|
}
|
|
308
|
+
/**
|
|
309
|
+
* 批量创建客户端
|
|
310
|
+
*/
|
|
264
311
|
createMultipleClients(configs) {
|
|
265
312
|
this.apiRegistry.createClients(configs);
|
|
266
313
|
}
|
|
314
|
+
/**
|
|
315
|
+
* 获取客户端列表
|
|
316
|
+
*/
|
|
267
317
|
listClients() {
|
|
268
318
|
return this.apiRegistry.listClients();
|
|
269
319
|
}
|
|
@@ -273,6 +323,9 @@ exports.ApiManagementService = ApiManagementService = __decorate([
|
|
|
273
323
|
(0, common_1.Injectable)(),
|
|
274
324
|
__metadata("design:paramtypes", [api_client_registry_service_1.ApiClientRegistryService])
|
|
275
325
|
], ApiManagementService);
|
|
326
|
+
/**
|
|
327
|
+
* 使用示例控制器
|
|
328
|
+
*/
|
|
276
329
|
let ExampleController = class ExampleController {
|
|
277
330
|
constructor(githubApi, stripeApi, wechatApi, customApi, apiManagement) {
|
|
278
331
|
this.githubApi = githubApi;
|
|
@@ -281,12 +334,18 @@ let ExampleController = class ExampleController {
|
|
|
281
334
|
this.customApi = customApi;
|
|
282
335
|
this.apiManagement = apiManagement;
|
|
283
336
|
}
|
|
337
|
+
/**
|
|
338
|
+
* GitHub API 示例
|
|
339
|
+
*/
|
|
284
340
|
getGitHubUser(username) {
|
|
285
341
|
return __awaiter(this, void 0, void 0, function* () {
|
|
286
342
|
const github = this.githubApi.github;
|
|
287
343
|
return github.get(`/users/${username}`);
|
|
288
344
|
});
|
|
289
345
|
}
|
|
346
|
+
/**
|
|
347
|
+
* Stripe API 示例
|
|
348
|
+
*/
|
|
290
349
|
createStripePayment(amount, currency) {
|
|
291
350
|
return __awaiter(this, void 0, void 0, function* () {
|
|
292
351
|
const stripe = this.stripeApi.stripe;
|
|
@@ -297,6 +356,9 @@ let ExampleController = class ExampleController {
|
|
|
297
356
|
});
|
|
298
357
|
});
|
|
299
358
|
}
|
|
359
|
+
/**
|
|
360
|
+
* 微信 API 示例
|
|
361
|
+
*/
|
|
300
362
|
sendWeChatMessage(openid, content) {
|
|
301
363
|
return __awaiter(this, void 0, void 0, function* () {
|
|
302
364
|
const wechat = this.wechatApi.wechat;
|
|
@@ -309,12 +371,18 @@ let ExampleController = class ExampleController {
|
|
|
309
371
|
});
|
|
310
372
|
});
|
|
311
373
|
}
|
|
374
|
+
/**
|
|
375
|
+
* 自定义API 示例
|
|
376
|
+
*/
|
|
312
377
|
getCustomData(id) {
|
|
313
378
|
return __awaiter(this, void 0, void 0, function* () {
|
|
314
379
|
const custom = this.customApi.customApi;
|
|
315
380
|
return custom.get(`/data/${id}`);
|
|
316
381
|
});
|
|
317
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* 动态API示例
|
|
385
|
+
*/
|
|
318
386
|
callDynamicApi(url) {
|
|
319
387
|
return __awaiter(this, void 0, void 0, function* () {
|
|
320
388
|
const client = this.apiManagement.createDynamicClient('dynamic', {
|
|
@@ -331,6 +399,9 @@ let ExampleController = class ExampleController {
|
|
|
331
399
|
return client.get('/');
|
|
332
400
|
});
|
|
333
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* API管理示例
|
|
404
|
+
*/
|
|
334
405
|
getApiHealth() {
|
|
335
406
|
return __awaiter(this, void 0, void 0, function* () {
|
|
336
407
|
return this.apiManagement.healthCheck();
|