2016-04-23 4 views
0

Ich habe gerade eine Cachet Statusseite eingerichtet, aber ich kämpfe, um Updates zu den Komponenten über es API zu schieben.JSON-Daten in cachet.io manipulieren

Ich möchte einen vorhandenen JSON-Feed von einer Partner-Site nehmen und diesen verwenden, um den Status auf meiner eigenen Seite zu aktualisieren. Hier

ist eine Probe der Daten JSON Ich brauche zu ziehen:

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

und unten ist das Format Cachet verwendet darin API ist.

{ 
    "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" 
    } 
} 

Nie zuvor mit JSON Sachen behandelt, aber ich denke, ich ein Skript, damit ich alle X Minuten laufen kann, die ursprünglichen Daten zu packen und gehen Sie wie folgt vor:

  • umrechnen „Zustand“ aus das Original in Cachet einspeisen.
  • Aktualisieren Sie die Uhrzeit "updated_at" mit der Uhrzeit, zu der das Skript zuletzt ausgeführt wurde.

Jede Hilfe oder Tutorials würde wirklich geschätzt werden.

Danke!

Antwort

0

Ich bin der leitende Entwickler von Cachet, danke, dass Sie es ausprobiert haben!

Alles, was Sie tun müssen, aktualisieren Sie die Component status. Cachet wird sich um den Zeitstempel updated_at kümmern.

Ich bin nicht in der Lage das Skript für Sie zu schreiben, aber man würde so etwas tun:

// 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] }}) 

Psuedo Code, aber Sie sollten sich von dem arbeiten können.

+0

Hallo James, Danke dafür, mit Ihrem Code konnte ich die Daten von dem externen Dienst greifen und es in die Status-ID für Cachet konvertieren. Kann immer noch nicht herausfinden, wie Sie dies in Cachet schieben können –

+0

Welche Sprache verwenden Sie? Machen Sie eine "PUT" -Anforderung an den Cachet-Endpunkt. – James

+0

Hallo James, ich arbeite in PHP –