Integrated REST

Integrated REST

将集成动力网络暴露为REST API

技术

Integrated REST

本模组需要 Cyclops Core 库和 Integrated Dynamics!

欢迎加入 Cyclops Discord 服务器 的 #integratedmods 频道与我们交流!

本模组允许你通过 REST API 读取和写入你的 Integrated Dynamics 网络。这使得你可以通过 Web 协议读取你的网络和世界状态,并通过 HTTP POST 请求与你世界中的 HTTP 代理方块进行交互。

以下是一些本模组(配合一些外部编程)可以实现的功能示例:

  • 根据 Minecraft 世界中的昼夜时间控制你家里的灯光。
  • 收到电子邮件时在 Minecraft 中播放声音。
  • 在你的网站上显示主世界中所有在线玩家的位置。
  • 当你在 Twitch 或 Mixer 获得新订阅者时,打开你刷怪塔的门。

警告: 如果你之前从未听说过 'API' 或 'REST',那么这个模组可能不适合你。本模组主要面向希望使用可通过 HTTP 通信的外部系统进行高级自动化的高级用户。

本模组会将你的网络以 JSON 格式暴露在一个可配置的端口上。以下是单个网络元素输出的片段:

{
  "@context": "https://raw.githubusercontent.com/CyclopsMC/IntegratedREST/master-1.12/src/main/resources/context.jsonld",
  "@id": "http://localhost:3000/",
  "networkElements": [
    {
      "@id": "http://localhost:3000/networkElement/integrateddynamics/part/4",
      "position": {
        "world": 0,
        "x": -26,
        "y": 57,
        "z": -249,
        "side": "ir:east"
      },
      "block": "http://localhost:3000/registry/block/integrateddynamics/cable",
      "@type": [
        "NetworkElement",
        "http://localhost:3000/registry/part/display_panel"
      ],
      "channel": 0,
      "priority": 0,
      "updateInterval": 1,
      "network": "http://localhost:3000/network/1619976862",
      "valueType": "http://localhost:3000/registry/value/valuetype/valuetypes/integrateddynamics/string/name",
      "value": "I was updated\\nvia HTTP!",
      "target": {
        "world": 0,
        "x": -25,
        "y": 57,
        "z": -249,
        "side": "ir:west"
      },
      "loaded": true
    },
  ...
  ]
}

实际上,这个 JSON 是有效的 JSON-LD(链接数据 JSON),这使得该输出可用于 RDF 工具。

除了你的网络及其元素的状态外,本模组还暴露了大多数 Forge 注册表的状态。所有可用信息(可通过 API 索引页面访问):

  • 网络
  • 网络元素
  • 部件类型
  • 方面类型
  • 值类型
  • 物品
  • 方块
  • 流体
  • 模组

本模组向游戏添加了一个可合成的方块:HTTP 代理。

HTTP 代理方块

与所有网络元素一样,该方块可通过 HTTP 访问。例如,ID 为 7 的 HTTP 代理可通过 http://localhost:3000/networkElement/integrateddynamics/http/7 访问。

该方块有一个内部值状态,可通过 HTTP POST 请求 进行更新(更多信息请参阅 Wiki)。

注意: 如果你在服务器上使用此模组,你可能希望禁用客户端 HTTP 服务器的启动,可以通过玩家的配置文件将其禁用。

本模组会收集匿名启动数据,这可以在配置文件中禁用,并遵循 Minecraft 的 snooper 设置。

Bisect Hosting

在租用 Bisect Hosting 服务器 时通过推荐码 cyclops 支持我们,可享受 25% 折扣!

Patreon

如果你喜欢这个模组,请考虑在 Patreon 上支持我!