Durchsuchbare Dokumentation aufrufen | Zurück zur Dokumentationsübersicht
Navigation: Dokumentationen agorum core > agorum core JavaScript-API
Diese JavaScript-Bibliothek bietet Funktionen zum Lesen von JSON-Daten von einem WebStream und Wandeln von JSON-Daten in JavaScript-Objekte.
Binden Sie die Bibliothek stets am Anfang eines Skripts ein:
let json = require('client/json');
// Aufruf von http://url-to-service/path/to/service let json = require('client/json'); let service = json('http://url-to-service', { type: 'application/json', // Was liefern wir accept: 'application/json' // Was wollen wir })('/path/to/service');
// Parameter hinzufügen (URL-Parameter) service.query({ param1: [ 'value1', 'value2' ], sessionId: sessionId }); // Liefert JSON oder ein gewandeltes JavaScript-Objekt. let getResponse = service.get();
// Parameter hinzufügen (URL-Parameter) service.query({ param1: [ 'value1', 'value2' ], sessionId: sessionId }); // body definieren let body = { test: 'test123', sessionId: sessionId, testDate: new Date(), testLong: 1234567890123456, testDouble: 12345.9876, testBoolean: true }; // Liefert JSON oder ein gewandeltes JavaScript-Objekt. let postResponse = service.post(body);
// Parameter hinzufügen (URL-Parameter) service.query({ param1: [ 'value1', 'value2' ], sessionId: sessionId }); // body definieren let body = { test: 'test123', sessionId: sessionId, testDate: new Date(), testLong: 1234567890123456, testDouble: 12345.9876, testBoolean: true }; // Liefert JSON oder ein gewandeltes JavaScript-Objekt. let postResponse = service.put(body);
Sie können Header vor einer Verbindung (get, post) einsetzen, die das System bei jeder Verbindung mitgibt.
// Header hinzufügen. service.header('X-Auth-Token', 123); // Weitere Header mit gleichem key hinzufügen. -> Beide Header werden mitgeschickt. service.header('X-Auth-Token', 'abc'); // Direkt ein Array mit mehreren Werten übergeben. let tokens = ['123', 'abc']; service.header('X-Auth-Token', tokens);
Dient als eine Art von Header zur Authentifizierung über Basic Auth.
// basicAuth hinzufügen. service.basicAuth('username', 'password');
Sie können bei der Initialisierung optional die Time-outs connectionTimeout und receiveTimeout setzen.
let json = require('client/json'); let service = json('http://url-to-service', { type: 'application/json', accept: 'application/json', connectionTimeout: 60000, receiveTimeout: 30000 })('/path/to/service');
Im Normalfall liefert das System den Antwort-Body als Ergebnis. Sind im Header der Antwort auch relevante Informationen, so können Sie die Service-Referenz stattdessen im Raw-Modus erzeugen:
let json = require('client/json'); let getHeaderString = (result, name) => { let header = result.headers[name] || []; return header[0]; }; let service = json('http://url-to-service', { raw: true }); let result = service('/path/to/call').get(); let myHeader = getHeaderString(result, 'my-header'); let body = result.body;
Folgende Felder stehen in dem zurückgegebenen Ergebnis-Objekt zur Verfügung:
Feld | Beschreibung |
---|---|
headers | Definiert ein Objekt, das alle Antwort-Header als Array enthält. |
body | Definiert den Antwort-Body als String oder JSON (wie im nicht-Raw-Modus). |
stream | Definiert den Antwort-Body als Stream bei Verwendung von getStream() statt get(). |
let json = require('client/json'); const SERVER = 'http://localhost'; const USERNAME = 'roi'; const PASSWORD = 'agorum'; let urlEncode = params => Object.entries(params) .map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value)) .join('&'); let service = json(SERVER, { accept: 'application/json', type: 'application/x-www-form-urlencoded', }); let sessionId = service('/api/rest/session').post(urlEncode({ username: USERNAME, password: PASSWORD })).sessionId;
Sie erhalten die sessionId, die Sie bei jedem weiteren Aufruf der API mitgeben müssen.
let json = require('client/json'); let objects = require('common/objects'); const SERVER = 'http://localhost'; const USERNAME = 'roi'; const PASSWORD = 'agorum'; let urlEncode = params => Object.entries(params) .map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value)) .join('&'); let service = json(SERVER, { accept: 'application/json', type: 'application/x-www-form-urlencoded', }); let sessionId = service('/api/rest/session').post(urlEncode({ username: USERNAME, password: PASSWORD })).sessionId; let upload = (object, target) => service('https://agorumdocproxy.agorum.com/api/rest/object/upload').query({ sessionId: sessionId, target: target }).postForm({ file: object, }); upload(objects.find('...'), 'home:MyFiles');