【问题标题】:Manipulate JSON data into cachet.io将 JSON 数据处理到 cachet.io
【发布时间】:2016-08-17 01:00:07
【问题描述】:

我刚刚设置了一个Cachet 状态页面,但我正在努力通过API 向组件推送更新。

我希望从合作伙伴网站获取现有的 JSON 提要,并使用它来更新我自己页面上的状态。

这是我需要提取的 JSON 数据示例:

{
    "state":"online",
    "message":"",
    "description":"",
    "append":"false",
    "status":true,
    "time":"Sat 23 Apr 2016 10:51:23 AM UTC +0000"
}

以下是 Cachet 在其 API 中使用的格式。

{
    "data": {
        "id": 1,
        "name": "Component Name",
        "description": "Description",
        "link": "",
        "status": 1,
        "order": 0,
        "group_id": 0,
        "created_at": "2015-08-01 12:00:00",
        "updated_at": "2015-08-01 12:00:00",
        "deleted_at": null,
        "status_name": "Operational"
    }
}

以前从未处理过 JSON 的东西,但我想我需要一个脚本,我可以每 X 分钟运行一次以获取原始数据并执行以下操作:

  • 将“状态”从原始提要转换为 Cachet 提要。
  • 将“updated_at”时间更新为脚本上次运行的时间。

任何帮助或教程将不胜感激。

谢谢!

【问题讨论】:

    标签: json laravel cron


    【解决方案1】:

    我是 Cachet 的首席开发人员,感谢您试用!

    您需要做的就是更新Component status。 Cachet 将为您处理updated_at 时间戳。

    我无法为您编写脚本,但您可以这样做:

    // This will be a lookup of the states from the service you're watching to Cachet.
    serviceStates = [
        'online' => 1,
        'issues' => 2,
        'offline' => 4,
    ]
    
    // The id of the component we're updating
    componentId = 1
    
    // The state that is coming back from the service you're watching
    state = 'online'
    
    request({url: 'demo.cachethq.io/api/v1/components/'+componentId, data: { status: serviceStates[state] }})
    

    伪代码,但您应该可以使用它。

    【讨论】:

    • 嗨詹姆斯,谢谢你,使用你的代码我能够从外部服务中获取数据并将其转换为状态 id 的缓存。仍然无法弄清楚如何将其推送到 Cachet
    • 您使用什么语言?向 Cachet 端点发出 PUT 请求。
    • 嗨,詹姆斯,经过更多的修补,我终于能够弄清楚这一点 - 非常感谢您的帮助! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 2020-07-05
    • 1970-01-01
    • 2021-12-18
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多