Persistieren benutzerdefinierter Daten in einer Datenbank

Diese Methode ermöglicht es externen Anwendungen, Daten an Orchestrator zu übermitteln, die in einer Datenbanktabelle namensshared_states. So kann ein Plugin beispielsweise eine Web-Benachrichtigung senden, wenn die Transkodierung abgeschlossen ist oder fehlschlägt.

Orchestrator verwendet eine einfache Autorisierung in der Anfrage.

Hinweis: Das Standardformat für die Antwort ist das XML-Format. Um eine Antwort im JSON-Format zurückzugeben, fügen Sieformat=jsonauf die Anfrage.
Hinweis: Sie müssen die URL-Kodierung für alle Sonderzeichen in Parameterwerten verwenden.

Verwendung

http://Orchestrator_IP_address/aspera/orchestrator/api/custom_api_call?login=user_name&identifier=identifier_valuejob_id=job_id
Beispiel:
http://10.0.0.10/aspera/orchestrator/api/custom_api_call?login=my_user_name&identifier=testing&uniq_id=321&job_id=123&job_result=success

Um die Suche nach den in die Tabelle eingegebenen Daten zu erleichtern, können die Benutzer zwei Parameter übergeben, um jeden Eintrag eindeutig zu identifizieren. Die Felder sindidentifierdie eine Zeichenkette ist, und uniq_idwas eine ganze Zahl ist.

Alle Schlüssel-Werte-Paare (außer fürlogin,password,identifier,uniq_id) wird in einem serialisierten Hash in dershared_statesTabelle.

Die Datenbankeinträge können mit einer MySQL-Abfrage oder einer Ruby-Abfrage durchsucht werden.

MySQL Abfrage:
select id, entry from shared_states where aggregate_type = “identifier” and aggregate_id = uniq_id
Ruby-Abfrage:
SharedState.find(:all, :conditions => [“aggregate_type = ? and aggregate_id = ?”, identifier, uniq_id])

Abfrageparameter

identifier=identifier
Gibt einen benutzerdefinierten Datenbezeichner an (Typ: String).
uniq_id=ein weiterer Bezeichner
Gibt einen eindeutigen Bezeichner für benutzerdefinierte Daten an (Typ: Ganzzahl).
data_name_X=data_1_value
Gibt einige Daten an, die übergeben werden sollen, wobeidata_name_Xist eine ganze Zahl.

Antwort

<?xml version="1.0"?>
<api_call action="custom_api_call">
   <shared_state>
      <id>34</id>
      <creation_time>"2014-03-22 21:11:35 UTC"</creation_time>
   </shared_state>
</api_call>