@fiado/api-invoker

中文文档
5.174.0发布于 2026/11/14ISCTypeScriptES Module近 30 天下载 1.1万

Sirve commo un puente elements funentes funciones lambda, facilitando la comunicación elease ellas a trevés de invocaciones http. 中国植物物种信息数据库

中文使用文档
文档目录45 节
  1. 兰姆达服务处
  2. 康特尼多斯塔布拉
  3. A. 总 则
  4. 普罗波西托语Name
  5. 阿基特克图拉
  6. 帕特罗内斯·德·通卡西翁
  7. 起义组织
  8. 同伴依赖关系
  9. 配置
  10. IoC连接器上的Registro
  11. 界面进口公司
  12. APIs 责任
  13. 塞尔维西奥斯核心
  14. 塞维西奥斯·德昆塔
  15. 塞尔维西奥斯-德帕果
  16. 塔尔耶塔骑士团
  17. Servicios de Riesgo 和欺诈
  18. 登机仪式
  19. 通讯社
  20. 塞内加尔
  21. Servicios 辅助系统
  22. 外来者
  23. 出版社(Colas SQS)
  24. Ejemplo 出版社
  25. 普罗耶克托的乌索
  26. Ejemplo:咨询主任
  27. 埃让普罗塞萨尔·特纳克西翁
  28. Ejemplo:身份认证证书
  29. 环境变量
  30. 模板中的 Cfiguración.yml
  31. URL 解决方案
  32. 普罗耶克托岛
  33. 埃斯图克图拉·德·昂·莫杜洛 API
  34. 埃斯特鲁克图拉 de un Módulo con queue
  35. 发展会议
  36. 诺门克拉图拉
  37. API 执行方案
  38. 执行出版社
  39. 页眉操作 名称
  40. 依赖性
  41. 运行时间
  42. 发展
  43. 汇编和宣传
  44. 构建
  45. 公众

菲亚多 API Invoker

兰姆达服务处

npm TypeScript AWS Lambda InversifyJS


康特尼多斯塔布拉


A. 总 则

@fiado/api-invoker 自由行动联盟 微服务公司 (原始内容存档于2018-09-26). Dentro del Ecosistema Fiado. 支持者:

  • 客户端 HTTP 提示 (原始内容存档于2013-10-12) (英语). Invocar APIs privadas de otros Lambdas
  • 出版商 SQS 中位数colas
  • 依附区 翻译 JS
  • 行政委员会 错误的描述和行为

普罗波西托语Name

(原始内容存档于2019-09-25) (英语). En una arquitectura de microservicios, cada Lambda expone una API privada ccessible únicamente desde la VPC. Esta librería 封口:

  1. LA URLs 基础构造
  2. 《HTTP报》
  3. 系列/有效载荷设计
  4. " 公民权利 " 组织

阿基特克图拉

┌─────────────────────────────────────────────────────────────────────────┐
│                         LAMBDA CONSUMIDOR                                │
│                                                                          │
│  ┌──────────────────┐    ┌──────────────────┐    ┌──────────────────┐  │
│  │   Manager/       │───▶│  @fiado/         │───▶│  @fiado/         │  │
│  │   Service        │    │  api-invoker     │    │  http-client     │  │
│  └──────────────────┘    └──────────────────┘    └──────────────────┘  │
│                                   │                        │            │
└───────────────────────────────────┼────────────────────────┼────────────┘
                                    │                        │
                    ┌───────────────┴───────────────┐        │
                    ▼                               ▼        ▼
            ┌──────────────┐                ┌──────────────────┐
            │   AWS SQS    │                │  API Gateway     │
            │   (Queues)   │                │  (Private VPC)   │
            └──────────────┘                └──────────────────┘
                    │                               │
                    ▼                               ▼
            ┌──────────────┐                ┌──────────────────┐
            │   Lambda     │                │   Lambda         │
            │   Subscriber │                │   Target         │
            └──────────────┘                └──────────────────┘

帕特罗内斯·德·通卡西翁

帕特龙执行乌苏
锡克罗诺HTTP 通过 API 网关 privadoCRUD 协商
阿斯克罗诺SQS 出版商事件、通知、批次

起义组织

npm install @fiado/api-invoker @fiado/http-client

同伴依赖关系

自由报务公司:

{
  "@fiado/http-client": "^1.0.7",
  "@fiado/logger": "^1.0.3",
  "@fiado/type-kit": "^2.1.28",
  "inversify": "^6.2.2",
  "reflect-metadata": "^0.2.2"
}

配置

IoC连接器上的Registro

自由出口a un ContainerModule dnversify JS que registra automáticamente todos los clientes API y 出版商:

import { Container } from "inversify";
import { IHttpRequest, AxiosHttpRequest } from "@fiado/http-client";
import { apiInvokerBindings } from "@fiado/api-invoker";

const container = new Container();

// 1. Cargar bindings de api-invoker (registra todos los clientes)
container.load(apiInvokerBindings);

// 2. Registrar el cliente HTTP (requerido por los clientes API)
container.bind<IHttpRequest>("IHttpRequest").to(AxiosHttpRequest);

export { container };

界面进口公司

// Importar interfaces específicas
import { 
    IDirectoryApi, 
    IIdentityApi, 
    ITransactionApi,
    INotificationMessagesPublisher 
} from "@fiado/api-invoker";

APIs 责任

人民解放组织 60+ 微服务 菲亚多生态主义:

塞尔维西奥斯核心

接口德克赖普西翁环境变量
IDirectoryApi用益主任DIRECTORY_LAMBDA_URL
IIdentityApi身份认证IDENTITY_LAMBDA_URL
IAuthenticationApi音响和符号AUTHENTICATION_LAMBDA_URL
ITransactionApi过境方案TRANSACTION_LAMBDA_URL

塞维西奥斯·德昆塔

接口德克赖普西翁环境变量
IAccountFiadoIncApi昆塔斯·菲亚多公司ACCOUNT_FIADOINC_LAMBDA_URL
IAccountFiadoSAApi南澳大利亚州ACCOUNT_FIADOSA_LAMBDA_URL
IAccountPagoConfiadoApi库恩塔斯·帕果孔菲亚多ACCOUNT_PAGOCONFIADO_LAMBDA_URL
IAccountBeneficiaryApi受益人ACCOUNT_BENEFICIARY_LAMBDA_URL
IBankAccountApi库恩塔斯班卡利亚BANK_ACCOUNT_LAMBDA_URL

塞尔维西奥斯-德帕果

接口德克赖普西翁环境变量
IStpSpeiApiSPEI 转让STP_SPEI_LAMBDA_URL
IStpServicePaymentApiSTP 服务之道STP_SERVICE_PAYMENT_LAMBDA_URL
ICentralPaymentsConnectorApi中心教师CENTRAL_PAYMENTS_LAMBDA_URL
ICollectorApi科布兰萨COLLECTOR_LAMBDA_URL

塔尔耶塔骑士团

接口德克赖普西翁环境变量
ICardApi暂停会议CARD_LAMBDA_URL
IPomeloApi波梅洛综合总会POMELO_LAMBDA_URL
IPomeloProcessorApi普罗塞萨多尔·波梅洛POMELO_PROCESSOR_LAMBDA_URL

Servicios de Riesgo 和欺诈

接口德克赖普西翁环境变量
IRiskProfileApi皮条客RISK_PROFILE_LAMBDA_URL
IFraudPreventionEngineApi汽车反欺诈FRAUD_PREVENTION_LAMBDA_URL
IBlackListApi列作线草BLACKLIST_LAMBDA_URL
ITransactionAlertApi情报中心RISK_PROFILE_LAMBDA_URL

登机仪式

接口德克赖普西翁环境变量
IOnboardingApi登上用益机ONBOARDING_LAMBDA_URL
IOnboardingBusinessApi登入国家ONBOARDING_BUSINESS_LAMBDA_URL
ICnbvApi综合CNBVCNBV_BUSINESS_LAMBDA_URL

通讯社

接口德克赖普西翁环境变量
IFiadoMessagesApi门萨耶里亚国际FIADO_MESSAGES_LAMBDA_URL
IFirebaseConnectorApi推动通知FIREBASE_CONNECTOR_LAMBDA_URL
IZendeskApi综合禅桌ZENDESK_LAMBDA_URL

塞内加尔

接口德克赖普西翁环境变量
IActivityApi国家行动ACTIVITY_BUSINESS_LAMBDA_URL
IServiceApi塞尔维西奥斯·德涅戈西奥SERVICE_BUSINESS_LAMBDA_URL
IPriceListApi排行榜PRICELIST_BUSINESS_LAMBDA_URL
IPayrollApi诺米纳PAYROLL_BUSINESS_LAMBDA_URL
IOrderCollectorApi洛布朗萨河流域ORDER_COLLECTOR_LAMBDA_URL

Servicios 辅助系统

接口德克赖普西翁环境变量
IAddressApi司长ADDRESS_LAMBDA_URL
IContactInformationApi联系信息CONTACT_INFORMATION_LAMBDA_URL
IDeviceApi处置者DEVICE_LAMBDA_URL
IGroupApi咕噜声GROUP_LAMBDA_URL
IP2pContactApi联系人P2PP2P_CONTACT_LAMBDA_URL
IExchangeRatesApiTipos de Cambio (法语)EXCHANGE_RATES_LAMBDA_URL
IProductCatalogApiCatálogo de productos( 生产公司)PRODUCT_CATALOG_LAMBDA_URL
IContractGeneratorApi创造者对抗者CONTRACT_GENERATOR_LAMBDA_URL
IDocumentImageProcessorApi普罗塞萨多尔·伊马赫内斯DOCUMENT_IMAGE_PROCESSOR_LAMBDA_URL
ILegalDocumentApi文档法LEGAL_DOCUMENT_LAMBDA_URL
IObservationsApi观察组OBSERVATIONS_LAMBDA_URL
IDirectoriesApi主任 : múltiplesDIRECTORIES_LAMBDA_URL
IDirectorySettingApi主任会议DIRECTORY_SETTING_LAMBDA_URL
IAppSelectionDataApi应用的远程教育APP_SELECTION_DATA_LAMBDA_URL
IReferralBusinessApi参考文献REFERRAL_BUSINESS_LAMBDA_URL
IEventHistoryApi事件简介EVENT_HISTORY_LAMBDA_URL
IReportProcessorBusinessApi报告进程REPORT_PROCESSOR_LAMBDA_URL
IPeopleBusinessApi人的权利PEOPLE_BUSINESS_LAMBDA_URL

外来者

接口德克赖普西翁环境变量
ITernApi泰恩语TERN_LAMBDA_URL
IBBVARstApi综合BBVA RSTBBVA_RST_LAMBDA_URL
IEstafetaApi埃斯塔费塔省ESTAFETA_LAMBDA_URL
ICognitoConnectorApi科尼奥多COGNITO_CONNECTOR_LAMBDA_URL
ICognitoV2Api认知V2COGNITO_CONNECTOR_LAMBDA_URL
ISTPAccountApiCuentas STP 软件STP_ACCOUNT_LAMBDA_URL

出版社(Colas SQS)

自由之声(la librería prove que envían mensajes a colas SQS)

接口德克赖普西翁变量 de Endrono (队列)
INotificationMessagesPublisher推/电子邮件/垃圾通知NOTIFICATION_MESSAGES_QUEUE
INotificationWSMessagesPublisher网络证券NOTIFICATION_WS_QUEUE
ISessionActivityPublisher国家行动SESSION_ACTIVITY_QUEUE
ITransactionPublisher过渡活动TRANSACTION_QUEUE
IActivityPublisher活动活动ACTIVITY_QUEUE
ITransactionAlarmPublisher阿尔马斯·德·特克西翁TRANSACTION_ALARM_QUEUE
IGsfSyncPublisher阿尔塔·德尔克雷迪托和帕果斯GsfSyncQueue.fifo(中文(简体) )GSF_SYNC_QUEUE_URL
IPublisher出版商 genérico可配置

Ejemplo 出版社

import { inject, injectable } from "inversify";
import { INotificationMessagesPublisher } from "@fiado/api-invoker";
import { NotificationQueueMessageRequest } from "@fiado/type-kit";

@injectable()
export class NotificationService {
    constructor(
        @inject("INotificationMessagesPublisher") 
        private notificationPublisher: INotificationMessagesPublisher
    ) {}

    async sendPushNotification(userId: string, message: string): Promise<void> {
        const notification: NotificationQueueMessageRequest = {
            userId,
            type: "PUSH",
            message,
            timestamp: new Date().toISOString()
        };
        
        await this.notificationPublisher.publish(notification);
    }
}

普罗耶克托的乌索

Ejemplo:咨询主任

import { inject, injectable } from "inversify";
import { IDirectoryApi } from "@fiado/api-invoker";
import { log } from "@fiado/logger";

@injectable()
export class UserService {
    constructor(
        @inject("IDirectoryApi") private directoryApi: IDirectoryApi
    ) {}

    async getUsersByIds(directoryIds: string[]): Promise<any[]> {
        try {
            const response = await this.directoryApi.getByIds(directoryIds);
            log.info("Directories fetched successfully", { count: response.length });
            return response;
        } catch (error) {
            log.error("Error fetching directories", error);
            throw error;
        }
    }

    async getUserByPhone(phoneNumber: string): Promise<any> {
        return await this.directoryApi.getByPhoneNumber(phoneNumber);
    }
}

埃让普罗塞萨尔·特纳克西翁

import { inject, injectable } from "inversify";
import { ITransactionApi, ITransactionPublisher } from "@fiado/api-invoker";

@injectable()
export class PaymentManager {
    constructor(
        @inject("ITransactionApi") private transactionApi: ITransactionApi,
        @inject("ITransactionPublisher") private transactionPublisher: ITransactionPublisher
    ) {}

    async processPayment(paymentData: any): Promise<void> {
        // 1. Crear transacción via API síncrona
        const transaction = await this.transactionApi.create(paymentData);
        
        // 2. Publicar evento para procesamiento asíncrono
        await this.transactionPublisher.publish({
            transactionId: transaction.id,
            event: "PAYMENT_INITIATED",
            timestamp: new Date().toISOString()
        });
    }
}

Ejemplo:身份认证证书

import { inject, injectable } from "inversify";
import { IIdentityApi, IRiskProfileApi } from "@fiado/api-invoker";

@injectable()
export class KYCService {
    constructor(
        @inject("IIdentityApi") private identityApi: IIdentityApi,
        @inject("IRiskProfileApi") private riskProfileApi: IRiskProfileApi
    ) {}

    async verifyUser(directoryId: string, documents: any): Promise<boolean> {
        // Verificar identidad
        const identityResult = await this.identityApi.verify(directoryId, documents);
        
        // Evaluar perfil de riesgo
        const riskProfile = await this.riskProfileApi.evaluate(directoryId);
        
        return identityResult.verified && riskProfile.score < 0.5;
    }
}

环境变量

Cada客户端 API require una variable de endrono con con la URL base del Lambda desino. 中国植物物种信息数据库. (原始内容存档于2019-09-31). El formato estándar es:

{SERVICE_NAME}_LAMBDA_URL=https://{api-id}.execute-api.{region}.amazonaws.com/v1/

模板中的 Cfiguración.yml

Environment:
  Variables:
    DIRECTORY_LAMBDA_URL: !Sub "{{resolve:ssm:fiado-directory-lambda}}"
    IDENTITY_LAMBDA_URL: !Sub "{{resolve:ssm:fiado-identity-lambda}}"
    TRANSACTION_LAMBDA_URL: !Sub "{{resolve:ssm:fiado-transaction-lambda}}"
    # ... otras URLs
    
    # Colas SQS
    NOTIFICATION_MESSAGES_QUEUE: !ImportValue SqsNotificationMessagesQueueUrl
    SESSION_ACTIVITY_QUEUE: !ImportValue SqsSessionActivityQueueUrl

URL 解决方案

Las URLs se almacenan en (中文(简体) ) SSM 参数存储器 永不放弃 中央情报局/中央情报局自动部署网络.


普罗耶克托岛

src/
├── index.ts                    # Exportaciones públicas
├── container.config.ts         # ContainerModule con todos los bindings
├── utils/                      # Utilidades compartidas
│   └── InvokerUtils.ts
│
├── directory/                  # Ejemplo de estructura de módulo
│   ├── index.ts               # Re-exportaciones del módulo
│   ├── DirectoryApi.ts        # Implementación del cliente
│   └── interfaces/
│       └── IDirectoryApi.ts   # Interface del cliente
│
├── transaction/               # Módulo con API y Publisher
│   ├── index.ts
│   ├── api/
│   │   ├── TransactionApi.ts
│   │   └── ITransactionApi.ts
│   └── queue/
│       ├── TransactionPublisher.ts
│       └── ITransactionPublisher.ts
│
├── notificationMessages/      # Módulo solo Publisher
│   ├── index.ts
│   └── queue/
│       ├── NotificationMessagePublisher.ts
│       └── interfaces/
│           └── INotificationMessagesPublisher.ts
│
└── [60+ módulos adicionales...]

埃斯图克图拉·德·昂·莫杜洛 API

{service-name}/
├── index.ts                   # export * from './interfaces/I{Service}Api';
│                              # export * from './{Service}Api';
├── {Service}Api.ts            # Implementación @injectable()
└── interfaces/
    └── I{Service}Api.ts       # Interface con JSDoc

埃斯特鲁克图拉 de un Módulo con queue

{service-name}/
├── index.ts
├── api/
│   ├── {Service}Api.ts
│   └── I{Service}Api.ts
└── queue/
    ├── {Service}Publisher.ts
    └── interfaces/
        └── I{Service}Publisher.ts

发展会议

诺门克拉图拉

元素帕特龙埃让普罗
卡尔佩塔·德莫杜洛kebab-caseaccount-fiadoinc/
接口 APII{Service}ApiIDirectoryApi
API 执行{Service}ApiDirectoryApi
界面发布器I{Service}PublisherITransactionPublisher
执行出版商{Service}PublisherTransactionPublisher

API 执行方案

import dotenv from 'dotenv';
import { inject, injectable } from "inversify";
import { IHttpRequest } from "@fiado/http-client";
import { I{Service}Api } from "./interfaces/I{Service}Api";
dotenv.config();

@injectable()
export class {Service}Api implements I{Service}Api {
    
    private readonly baseUrl = process.env.{SERVICE}_LAMBDA_URL || "";

    constructor(
        @inject("IHttpRequest") private httpRequest: IHttpRequest
    ) {}

    public async getById(id: string): Promise<any> {
        const url = `${this.baseUrl}?id=${id}`;
        const operationName = "getById";
        
        return await this.httpRequest.get(url, null, { 
            'operationName': operationName 
        });
    }
}

执行出版社

import { SendMessageCommand, SQSClient } from "@aws-sdk/client-sqs";
import { inject, injectable } from "inversify";
import { I{Service}Publisher } from "./interfaces/I{Service}Publisher";

@injectable()
export class {Service}Publisher implements I{Service}Publisher {
    
    private readonly queueUrl = process.env.{SERVICE}_QUEUE;

    async publish(message: any): Promise<void> {
        const client = new SQSClient();
        const command = new SendMessageCommand({
            QueueUrl: this.queueUrl,
            MessageBody: JSON.stringify(message)
        });
        await client.send(command);
    }
}

页眉操作 名称

Todas las lamadas HTTP 包含 Huyen el 头部 operationName 许可证 :

  • 原木上的Trazabilidad
  • 马特里亚斯·波克罗西翁
  • X- Ray 调试

依赖性

运行时间

依赖性韦尔西翁普罗波西托语Name
@aws-sdk/client-sqs^ 3.919.0 (韩语)客户端 SQS para 出版商
@fiado/gateway-adapter^1.1.50 (中文(简体) )Tipos de respuesta API (英语)
@fiado/http-client^1.0.7 (中文(简体) )客户端 HTTP 基础
@fiado/logger^1.0.3 (中文(简体) )记录构造
@fiado/type-kit^2.1.28 (中文(简体) )DTOs 和 Tipos 堆肥
inversify^ 6.2.2依附区
reflect-metadata^ 0.2.2 (中文(简体) )元代装饰
dotenv^ 16.4.7 (中文(简体) )排雷变量

发展

依赖性韦尔西翁普罗波西托语Name
@types/node^20.17.24 (中文(简体) )提波斯节点js
typescript(同声)编译器类型脚本

汇编和宣传

构建

npm run build

热那拉群岛 .js 尔 .d.ts 导演 bin/。 。 。 .

公众

npm version patch|minor|major
npm publish

菲亚多孔皮古拉多国家登记处 .npmrc。 。 。 .


菲亚多公司. @fiado/api-invoker v 1.5.34 (英语)

版本与发布记录

@fiado/api-invoker 共发布 779 个版本,首次发布于 2024/03/28;过去 12 个月发布了 370 个版本。

版本发布日期距今
5.174.0latest2026/11/14今天
5.173.02026/11/122 天前
5.172.02026/11/122 天前
5.171.02026/11/113 天前
5.170.02026/11/104 天前
5.169.02026/11/104 天前

其他发布通道:legacy-v6 → 3.18.1。

关于 @fiado/api-invoker 的常见问题

@fiado/api-invoker 是什么?

Sirve commo un puente elements funentes funciones lambda, facilitando la comunicación elease ellas a trevés de invocaciones http. 中国植物物种信息数据库

如何安装 @fiado/api-invoker?

在项目目录运行 npm install @fiado/api-invoker,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:inversify(^8.0.0)、reflect-metadata(^0.2.2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@fiado/api-invoker 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fiado/api-invoker 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@fiado/api-invoker 可以商用吗?

@fiado/api-invoker 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fiado/api-invoker 的下载量有多少?

根据 npm 官方下载统计,@fiado/api-invoker 在 2026/10/15 – 2026/11/13 这 30 天内被下载 11,224 次,日均约 374 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fiado/api-invoker 还在维护吗?

最新版本 5.174.0 发布于 2026/11/14(今天);至今共发布 779 个版本,其中过去 12 个月发布了 370 个;首次发布于 2024/03/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。