extension-http-outcalls

extension-http-outcalls

由后端容器(而非前端)执行的 HTTP 出站调用。

0Star
0Fork
更新于 2026/7/13
SKILL.md
readonly只读
name
extension-http-outcalls
description

由后端容器(而非前端)执行的 HTTP 出站调用。

version
0.1.6

HTTP 出站调用

用于 Caffeine AI 的 HTTP 出站调用扩展。

概述

此技能增加了从后端容器发起 HTTP GET 和 POST 请求的能力。适用于与外部 API 和服务集成。

后端

对于必须在后端执行的 HTTP 出站调用:

有一个预制模块 mo:caffeineai-http-outcalls/outcall.mo,该模块不可修改。它提供了在后端发起 HTTP GET 或 PUT 请求的基本功能。

module {
  public type TransformationInput = {
    context : Blob;
    response : IC.HttpRequestResult;
  };
  public type TransformationOutput = IC.HttpRequestResult;
  public type Transform = query TransformationInput -> async TransformationOutput;
  public type Header = {
    name: Text;
    value: Text;
  };

  // IC 在 HTTP 出站调用中使用的转换回调辅助函数。
  public func transform(input : TransformationInput) : TransformationOutput;

  // HTTP GET 请求,带转换回调函数。
  public func httpGetRequest(url : Text, extraHeaders: [Header], transform : Transform) : async Text;

  // HTTP POST 请求,指定转换回调。
  public func httpPostRequest(url : Text, extraHeaders: [Header], body : Text, transform : Transform) : async Text;
};

GET 用法示例:

import OutCall "mo:caffeineai-http-outcalls/outcall";

actor {
  public query func transform(input: OutCall.TransformationInput) : async OutCall.TransformationOutput {
    OutCall.transform(input);
  };

  func makeGetOutcall(url: Text) : async Text {
    await OutCall.httpGetRequest(url, [], transform);
  };
};

提示:Motoko 不直接支持 JSON 解析。建议将 JSON 传输到前端进行解析。

POST 用法类似。