#HowTo: Generische Swagger Datei für K2 REST Broker

In einem anderen Beitrag habe ich ausführlich erklärt, wie einfach man mit dem K2 REST Broker via IFTTT und den Maker Service praktisch jeden Dienst mit K2 ansteuern kann: LinkedIn, Facebook, Twitter, Philips Hue etc.

Grundvoraussetzung hierfür ist eine Swagger Datei, die den Service beschreibt und von dem K2 Broker genutzt wird um korrespondierende SmartObjects zu erstellen. In diesem Artikel geht es darum, wie diese Datei auszusehen hat und wie man sie letztlich den K2 Broker damit konfigurieren muss!

Zu erwähnen sei hier noch, dass ich diese Datei nun bewusst generisch aufgebaut habe, damit ich jedes Maker Ereignis auslösen kann. Natürlich könnte man auch eine Datei mit konkreten Werten aufbauen oder mit mehreren Dateien arbeiten! Der Inhalt meiner generischen Ausprägung ist am Ende des Artikels zu sehen.

Hat man die Datei erstellt muss man den REST Broker konfigurieren. Dies geht am einfachsten über die Management Site.

Wichtig ist hierbei der Speicherort der Datei. Der kann auf dem Server oder auf einer Onlineresource sein, siehe Descriptor Location.

Aber diesem Punkt ist man quasi wieder “back in business” und kann wie gehabt mit den SmartObjects arbeiten und sie direkt in der Oberfläche oder in Worklows nutzen.  Ein kurzer Test in der Management Site schadet allerdings nicht, denn vielleicht hat man ja die Swagger Datei nicht ordentlich aufgebaut.

Diese Parametrisierung entspricht allerdings exakt der Beschreibung und somit können wir wieder zurück zum eigentlichen Beitrag 🙂

Der Inhalt der generischen Swagger (.JSON) Datei ist wie folgt zu gestalten:

{
 "swagger": "2.0",
 "info": {
 "version": "1.0.0",
 "title": "IFTTTMaker",
 "description": "IFTTT Maker Test with K2 REST BROKER"
 },
 "schemes": [
 "https"
 ],
 "host": "maker.ifttt.com",
 "basePath": "/trigger",
 "paths": {
 "/{event}/with/key/{key}": {
 "post": {
 "responses": {
 "200": {
 "description": "IFTTT Response"
 }
 },
 "parameters": [
 {
 "name": "event",
 "in": "path",
 "description": "event name",
 "type": "string",
 "required": true
 },
 {
 "name": "key",
 "in": "path",
 "description": "maker key url part, keep this SECRET",
 "type": "string",
 "required": true
 },
 {
 "name": "value1",
 "in": "query",
 "description": "value1 parameter",
 "type": "string",
 "required": false
 },
 {
 "name": "value2",
 "in": "query",
 "description": "value2 parameter",
 "type": "string",
 "required": false
 },
 {
 "name": "value3",
 "in": "query",
 "description": "value3 parameter",
 "type": "string",
 "required": false
 }
 ]
 }
 } 
 }
}
Buffer this pageShare on LinkedInShare on FacebookTweet about this on TwitterEmail this to someone