Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beschreibung

Der HTTP-Rest-Manager ermöglicht es dem Benutzer, Anforderungen an einen Server zu senden und die zurückgegebene Antwort in einer Variablen zu speichern, und kann mit den Werten in JS arbeiten.

...

Voraussetzung: Der ausführende Benutzer/Server der Anwendung (Betriebssystembenutzer, nicht der aktuell angemeldete Benutzer) muss den gewünschten Endpunkt erreichen können.

...

Variante 1: REST CALL in JS

Beschreibung

Der REST CALL wird vollständig in der JS-Datei verwaltet. Für Änderungen müssen Sie die Datei custom-project.js in Ihrem Ressourcenordner aktualisieren.

Javascript (JavaScript)

Code Block
languagejs
jqxhr = jQ.ajax({ 
			url: '/loom-portal/rest/HttpRestManager?<<?>>', 
			type: 'GET', 
		}).success(function(data){ 
			//Function to be called if the request succeeds 
		}).fail(function(data){ 
			//Error Handling 
		});

Info

Beim Aufruf des HttpRestManager über JavaScript muss der Typ 'GET' sein.

URL (HTTPRestManager)

Code Block
languageactionscript3
URL: '/loom-portal/rest/HttpRestManager?<<PARAMETER>>

Der erste Parameter beginnt mit einem <<?>> alle anderen werden von einem <<&>> hinzugefügt.

Beispiel-URL

Code Block
languagejs
$.ajax({
    url: '/loom-portal/rest/HttpRestManager?hostName='+URL+"&method=GET&additionalHeaders=[NAME_OF_VARIABLE=" + variable + ";" + "NAME_OF_VARIABLE2=" + variable2 + "]",
    type: 'GET',
    success: function(data) {
        if (data.status && data.status == "200") {
        console.log(data);
        }
    }
});

Parameter

Parametername

Standardwert

Beschreibung

Gültige Beispiele

HostName

Dieser Parameter enthält die URl des angeforderten Servers.

https://demo.com/interface/getExampleData

Methode

"POSTEN"

Dieser Parameter bestimmt, welche Methode remote aufgerufen wird. "Post" bedeutet, dass der Server eine Eingabe im XML-Format erwartet, die er verarbeitet und zurückgibt. "Get" hingegen bedeutet, dass der Server Daten sendet, ohne dass eine Eingabe erforderlich ist.

Weitere Möglichkeiten sind "delete", "get", "head", "options", "patch", "post", "put".

postParameter

Dieser Parameter enthält die Eingabe für den Server im JSON-Format.

"json", "XML", "HTML", "text", "auto"

responseVariable

"SYS. HttpRestManager_response"

Dieser Parameter enthält die Prozessvariable, in der die Serverantwort gespeichert werden soll.

demoResponseVariable

Benutzer

Dieser Parameter ist nur erforderlich, wenn der Server eine Identifizierung erfordert und den Benutzernamen des Benutzers enthält.

demoUser

bestehen

Dieser Parameter wird nur benötigt, wenn der Server eine Identifikation benötigt und das Kennwort des Benutzers enthält.

demoPassword

authMethode

"Basic"

Dieser Parameter wird nur benötigt, wenn der Server eine Identifizierung erfordert und die Verschlüsselung enthält, die angewendet werden soll. Eine mögliche Verschlüsselung ist base64, die angewendet wird, indem dieser Parameter auf "basic" gesetzt wird.

"Oauth"

"Basic"

oAuthTokenUrl

Nur erforderlich, wenn authMethod = "oauth"

URL, von der das oauth-Token abgerufen werden soll.

Zugang

""

Definiert, welche Gruppen oder Benutzer die Schnittstelle aufrufen und Daten daraus abrufen können. Alle anderen Anrufe von nicht autorisierten Benutzern/Gruppen werden abgelehnt. Mehrere Benutzer/Gruppen können über ',' getrennt werden.
Standardmäßig ist die Schnittstelle für alle Benutzer aufrufbar.
Lassen Sie den Parameter leer/undefiniert für uneingeschränkten Zugriff.

group(exampleGroup), user(exampleUser)

additionalHeaders

Hinzufügen zusätzlicher Header zum Rest-Aufruf

"&method=GET&additionalHeaders=[NAME_OF_VARIABLE=" + variable + ";" + "NAME_OF_VARIABLE2=" + variable2 + "]"

Beispiel

Javascript (JavaScript)
Code Block
languagejs
var URL = "https://demo.com/interface/getExampleData"; 
var USER = "$enc$-605bc19777d129d182d0c467a54b129"; 
var PASSWORD = "$enc$-eda084ca7ea688d6454add9f9e4bd84"; 

jqxhr = jQ.ajax({ 
			url: '/loom-portal/rest/HttpRestManager?hostName=' + URL + '&method=GET&authMethod=basic&user=' + USER + '&pass=' + PASSWORD + &postParameter=json, 
			type: 'GET', 
			}).done(function(data){ 
				//todo!
			}).success(function(data) { 
			var response = 	data; 
			if (checkIfVariableIsNotNullAndNotUndefinedAndNotEmpty(response)) { 
				var parsedResponse = data; 
				if (typeof parsedResponse === "string") { 
					parsedResponse = JSON.parse(data); 
				} 
				thisPointer.entity.setValue('variable', JSON.stringify(data.response)); 
				thisPointer.entity.mergeLocal(true); 
			} 
		}).fail(function(data) { //Error Handling });

Note

Speichern Sie den Benutzer und das Passwort nicht ohne Maskierung in den JS-Dateien!

Verwenden Sie das Encodermodul, um die Daten zu maskieren.

URL: <<serverAdress>>/encoder/ (Falls nicht vorhanden, wenden Sie sich bitte an den definierten Ansprechpartner)

Funktion checkIfVariableIsNotNullAndNotUndefinedAndNotEmpty \[polyfill\]
Code Block
languagejs
/** checkIfVariableIsNotNullAndNotUndefinedAndNotEmpty - returns true, if given variable is not empty and not null and not undefined - else it returns false**/ 

function checkIfVariableIsNotNullAndNotUndefinedAndNotEmpty(variable) { 
	if(variable !== null && variable !== undefined && variable !== "") { 
		return true; } 
	return false; 
}
Ausgabekonsole
Code Block
languagejs
JSON.parse(thisPointer.entity.getValue('variable')); { name: "Name", id: "id_val" }

...

Variante 2: REST CALL mit tim.properties

Beschreibung

Der Unterschied zu Variante 1 besteht darin, dass Sie den REST CALL in der Datei tim.properties konfigurieren müssen, die sich im Super-Ressourcenordner (Zugriff mit einem Super-Admin) oder Server-Dateisystem (Zugriff über Dateizugriff auf den Server) befindet. In diesem Fall müssen Sie die JS-Datei nicht berühren, wenn Sie z.B. das Passwort oder andere konfigurierbare Parameter ändern möchten. Solange der REST CALL bereits in der JS-Datei implementiert ist. Der Vorteil dieser Variante ist, dass Sie keine Passwörter oder Benutzernamen in der JavaScript-Datei hinterlegen müssen.

tim.properties

Code Block
languagejs
third-party-endpoint-getRESTCall={ 
	"hostName":"https://demo.com/interface/getExampleData", 
	"method":"GET"
	"authMethod":"basic", 
	"responseVariable":"demoVariable", 
	"user":"user", 
	"pass":"password",
	"postParameter": "json" 
}

Javascript (JavaScript)

Diese Methode ist nur im erweiterten Framework verfügbar (benutzerdefiniert, kein Standard):

...

Info

Beim Aufruf des HttpRestManager über JavaScript muss der Typ 'GET' sein.

URL (HTTPRestManager)

Code Block
languageactionscript3
URL: '/loom-portal/rest/HttpRestManager/<<name_of_tim.propertie_endpoint>>

Parameter

Parametername

Standardwert

Beschreibung

Gültige Beispiele

HostName

Dieser Parameter enthält die URl des angeforderten Servers.

https://demo.com/interface/getExampleData

Methode

"POSTEN"

Dieser Parameter bestimmt, welche Methode remote aufgerufen wird. "Post" bedeutet, dass der Server eine Eingabe im XML-Format erwartet, die er verarbeitet und zurückgibt. "Get" hingegen bedeutet, dass der Server Daten sendet, ohne dass eine Eingabe erforderlich ist.

Weitere Möglichkeiten sind "delete", "get", "head", "options", "patch", "post", "put".

postParameter

Dieser Parameter enthält die Eingabe für den Server im JSON-Format.

"json", "xml", "html", "text", "auto"

responseVariable

"SYS. HttpRestManager_response"

Dieser Parameter enthält die Prozessvariable, in der die Serverantwort gespeichert werden soll.

demoResponseVariable

Benutzer

Dieser Parameter ist nur erforderlich, wenn der Server eine Identifizierung erfordert und den Benutzernamen des Benutzers enthält.

demoUser

bestehen

Dieser Parameter wird nur benötigt, wenn der Server eine Identifikation benötigt und das Kennwort des Benutzers enthält.

demoPassword

authMethode

"Basic"

Dieser Parameter wird nur benötigt, wenn der Server eine Identifizierung erfordert und die Verschlüsselung enthält, die angewendet werden soll. Eine mögliche Verschlüsselung ist base64, die angewendet wird, indem dieser Parameter auf "basic" gesetzt wird.

"Oauth"

"Basic"

oAuthTokenUrl

Nur erforderlich, wenn authMethod = "oauth"

URL, von der das oauth-Token abgerufen werden soll.

Zugang

""

Definiert, welche Gruppen oder Benutzer die Schnittstelle aufrufen und Daten daraus abrufen können. Alle anderen Anrufe von nicht autorisierten Benutzern/Gruppen werden abgelehnt. Mehrere Benutzer/Gruppen können über ',' getrennt werden.
Standardmäßig ist die Schnittstelle für alle Benutzer aufrufbar.
Lassen Sie den Parameter leer/undefiniert für uneingeschränkten Zugriff.

group(exampleGroup), user(exampleUser)

Beispiel

Javascript (JavaScript)
Code Block
languagejs
jQ.ajax({
		url: "/loom-portal/rest/HttpRestManager/getRESTCall,
		type: "GET",
	}).done(function (data) {
		console.log('Date from interface is done loading:' + data);
	}).success(function (data) {
		// YOUR CUSTOM CODE HERE
	}).fail(function (data) {
		console.log('There has been an error loading the data from the interface:' + data);
	}).always(function () {
		console.log('The interface call is completed.);
	});

Note

Speichern Sie den Benutzer und das Passwort nicht ohne Maskierung in den JS-Dateien!

Verwenden Sie das Encodermodul, um die Daten zu maskieren.

URL: <<serverAdress>>/encoder/ (Falls nicht vorhanden, wenden Sie sich bitte an den definierten Ansprechpartner)

Customizing: REST CALL mit benutzerdefinierten Variablen (über Template-Datei) (JS und tim.properties)

Beschreibung

Das folgende Beispiel zeigt, wie benutzerdefinierte Variablen in Verbindung mit einer REST CALL über JSON-Vorlagendatei verwendet werden. In diesem Fall müssen Sie die Parameter "templatePath" und "customVariables" in der REST CALL URL hinzufügen. Auf diese Weise können Sie Ihren Anruf anpassen.

Javascript (JavaScript)

Javascript (JavaScript)
Code Block
languagejs
var URL = "https://demo.com/interface/getExampleData"; 
var USER = "$enc$-605bc19777d129d182d0c467a54b129"; 
var PASSWORD = "$enc$-eda084ca7ea688d6454add9f9e4bd84";
var demoVariable = "Demo";

jQ.ajax({ 
	url: '/loom-portal/rest/HttpRestManager' +
		 '?hostName=' + URL + 
		 '&method=POST' +
		 '&authMethod=basic' + 
		 '&user=' + USER + 
         '&pass=' + PASSWORD + 
		 '&responseVariable=variableNameToSaveResponseTo' +
		 '&templatePath=httpBodyGetHeadDataByDemoVariables.json' +
		 '&customVariables=[custom_variable_name=' + demoVariable + ',custom_variable_name_two=' + demoVariableTwo + ']',
	type: 'GET', 
}).done(function(data){ 
	//todo!
}).success(function(data) { 
	//todo!
}).fail(function(data) { //Error Handling });

JSON-Datei - httpBodyGetHeadDataByDemoVariables.json (Parameter: templatePath)

JSON
Code Block
languagejs
{
    "search": [{
        "field": "demoField",
        "value": "${custom_variable_name}",
        "operator": "startsWith"
    }]
}

...