使 Wolfram 语言函数可被用作云端 API,可以从其他编程语言中调用或嵌入到网页上.
创建一个 APIFunction
创建一个返回两个城市之间距离的 APIFunction. 在这个例子中,TravelDistance 返回 Quantity. 对结果应用 QuantityMagnitude,将数值提取出来,与 Quantity 相比,外部程序更容易处理:
把 APIFunction 部署到 Wolfram Cloud
把函数部署到云端,同时设置 Permissions->"Public",使得每个人都可以使用 API:
用浏览器测试 API:
通过从浏览器调用 API 来验证 API 是否正常工作. 如果想要构建调用 API 的 URL,请右键单击 CloudDeploy 的 CloudObject 输出中的 URL,然后选择 复制地址:
把地址粘贴到浏览器的搜索栏,在末尾加上问号 (?),然后是参数名称和值,用与符号 (&) 分开—例如:"?city1=Chicago&city2=Miami":
从非 Wolfram 语言调用 API
获取从 Python 调用 API 的代码:
把嵌入代码粘贴到 Python 脚本:
运行 Python 脚本:
$ ./APITest.py
1378.25516483735
技术要点
参数可以是任意 Interpreter 类型,包括国家、货币、颜色、日期和 email 地址.
可以指定 API 返回结果时使用的格式:
如果想要从 Wolfram 语言中以编程方式调用 API 函数,请使用 URLExecute,并在列表中给出 API 参数:
- 对于 HTTP POST 请求,使用设置为 Method "POST" 的 HTTPRequest 而不是 URLExecute.
如果想要 API 的 URL 更容易被记住,在部署中指定一个 CloudObject 名称:
如果想要使 API 的 URL 短一些,可以使用 URLShorten:
一个已部署的 APIFunction 可以被嵌入到网页中,以便呈现时,它返回的内容被插入到页面中.
生成 APIFunction,返回显示一个城市的本地时间的钟表:
把嵌入代码插入到 HTML 文档中,并在 _embed=iframe 后面加上 APIFunction 参数:
API 允许使用 AllowedCloudParameterExtensions 从各种源和不同的语法得到输入.