Einsicht

REST oder nicht REST API in OneStream

Wenn Sie eine direkte Verbindung zwischen Ihren Quellsystemen und der OneStream-Umgebung herstellen möchten, ohne schwierige Netzwerkverbindungen oder wartungsabhängiges IP-Whitelisting erstellen zu müssen, ist REST API Ihr Freund. Immer mehr unserer Kunden nutzen die REST-API-Technologie, um ihre Datenintegration zu automatisieren und Prozesse schneller und einfacher zu gestalten. Die RESTful-API oder REST-API verwendet HTTP-Anfragen, um direkt mit anderen Webdiensten zu kommunizieren, die sofort einsatzbereit sind. Es sind also keine zusätzlichen Änderungen im Netzwerk erforderlich, um diese Verbindung zu ermöglichen!

Um die REST-Ful-API-Technologie innerhalb der OneStream-Plattform zu nutzen, kann eine Extensibility Business Rule erstellt werden, die diese Anfragen ausführt.

REST-Anfrage

Der folgende Codeschnipsel ist ein Beispiel für eine parametrisierte REST-API-POST-Anforderung:

Using client As New HttpClient()
'  Autorisierungs-Headersetzen
       client.DefaultRequestHeaders.Add("Authorisation", "Bearer " & sBearerToken)
' Anfragekörper erstellen
   Dim dRestAPIParameters As New Dictionary(Of String, Object)()
   dRestAPIParameters.Add("Zeitraum", "2024M10")
   dRestAPIParameters.Add("Entity", "Groningen")
                
   ' Konvertieren Sie den Request Body in das korrekte Format, application/json in UTF8
    Dim jsonRestAPIParameters As String = JsonConvert.SerializeObject(dRestAPIParameters)
     Dim content As New StringContent(jsonRestAPIParameters, Encoding.UTF8, "application/json") 
    
     'POST-Anfrage senden
    Try
           Dim response As HttpResponseMessage = client.PostAsync(url, content).Result
                    
       'Wenn die Anfrage erfolgreich ist 
                    If response.IsSuccessStatusCode Then
                        Dim responseBody As String = response.Content.ReadAsStringAsync().Result
                        If responseBody.Length > 0 Then
                            Return JObject.Parse(responseBody)("Status")
                        Else 'responseBody.Length > 0
                           Throw New XFException($"{response.StatusCode} - {response.ReasonPhrase}")
                           Return Nothing
                       
 E nd If 'responseBody.Length > 0 
        'Wenn die Anfrage fehlschlägt   
        Else 'response.IsSuccessStatusCode
                        Throw New XFException($"{response.StatusCode} - {response.ReasonPhrase}") 
                        Return Nothing
                    End If 'response.IsSuccessStatusCode
                    
               Catch ex As Exception
                   Throw ErrorHandler.LogWrite(si, New XFException(si, ex))
               End Try
End Using 'client As New HttpClient()

Die POST-Anforderung kann als Auslöser für die Generierung eines bestimmten Datensatzes auf der Grundlage der in der Anforderung übermittelten Parameter dienen. Nachdem dieser Datensatz generiert wurde, kann eine GET REST API verwendet werden, um den tatsächlichen Datensatz im JSON-Format zu erhalten und ihn direkt in die OneStream-Importschritte Ihrer Workflows zu importieren.

Sicherheit

Der offensichtliche Nachteil dieser REST-API besteht darin, dass sie direkt dem Internet ausgesetzt ist, wodurch eine sichere Verbindung von entscheidender Bedeutung ist. Ein einfacher nativer Benutzername und ein Passwort (Basic Authentication Header) sind möglicherweise nicht mehr ausreichend. Für unsere Kunden haben wir OneStream so konfiguriert, dass bessere Authentifizierungsmethoden zur Authentifizierung von REST-API-Anforderungen verwendet werden.

Ein Beispiel für diese Methoden ist das OAUTH-2.0-Protokoll. Dabei wird ein so genanntes Authentifizierungs-Token verwendet, das es den Benutzern ermöglicht, auf APIs zuzugreifen, ohne dass sie bei jedem Besuch ihre Anmeldedaten eingeben müssen. Um das OAuth-Authentifizierungs-Token zu erhalten, kann dieselbe Erweiterungs-Geschäftsregel verwendet werden, bei der ein einfacher Benutzername und ein Passwort übergeben werden, um schließlich ein Token zu erhalten. Diese Token-Zeichenfolge kann dann als Bearer Token-Eigenschaft im Autorisierungs-Header der ursprünglichen Anfrage verwendet werden. Der folgende Ausschnitt zeigt ein Beispiel für eine REST-API-POST-Anforderung, bei der die Antwort das generierte OAUTH-Zugangs-Token enthält.

https://pastebin.com/embed/PpksGH9y

<script src="https://pastebin.com/embed_js/PpksGH9y"></script>

Dies ist nur ein Beispiel für eine REST-API in OneStream. Die Möglichkeiten der Integration von RESTful-Technologie in die OneStream-Plattform sind grenzenlos.

Schlussfolgerung

Wenn Sie es satt haben, csv-Dateien manuell von System zu System zu übertragen, und mehr über die Möglichkeiten der REST-API in Verbindung mit OneStream zur Automatisierung der Integration erfahren möchten, zögern Sie bitte nicht, mich oder meine Kollegen zu kontaktieren.

Autor
Thema
Keine Artikel gefunden.
Thema
Keine Artikel gefunden.
Technologie
Industrie
Keine Artikel gefunden.