Eigene (API) Verbindung

Hallo Zusammen,


ich hätte sehr gerne die Möglichkeit eigene Connector für API Anbindungen festzulegen (Ähnlich wie der PlentyConnector bei euch).

Darin sollen Werte für die Autorisierung bei API Calls gespeichert werden (Host, API Keys, ClientIDs, etc.).

Idealerweise würde ich auch gerne einstellen können wie diese Werte in den Calls konsumiert werden. Heißt also ob jetzt ein Bearer Token abgefragt werden muss oder ob nur Basic Auth gemacht wird oder ob er einen bestimmten Wert in den HTTP Header schreiben soll.


Das hat zwei Vorteile:
Ich kann einfacher zwischen Prod und Test API wechseln und muss nicht in Projektvariablen die Werte austauschen.

Ich muss nicht bei jedem neuen API Call die Auth neu einstellen.



Viele Grüße

Stefan

Ja der Wunsch kam bei uns intern auch schon hin und wieder. Wir besprechen mal Ansätze und melden uns.

Frage: Dein Hauptanwendungsfall sind HTTP-Steps (URLDownload, APICall, SpreadsheetUrlDownload)?

Korrekt, das wäre dann nur für die Steps.

Fände ich auf jeden Fall ein cooles Ding :thumbsUp:


Grüße und ein schönes Wochenende

Stefan

Hi Stefan,

wir haben die Accounts für HTTP-Verbindungen erweitert. D.h. an allen HTTP-Steps taucht der Account jetzt als erstes auf, so wie bei den meisten Steps.

Am Account selbst, kann man jetzt verschiedene Verbindungstypen wählen, wodurch entsprechende Felder auftauchen.

Neu und praktisch ist auch die baseURL, die man jetzt vergeben kann. Wenn man diese vergibt, braucht man im Host nur noch die URL-Teile danach angeben. D.h. man kann z.b. auch relativ schnell mal die URL wechseln oder zwischen sandbox. und production. wechseln etc.


Schau mal, ob du damit deine Use-Cases abgebildet bekommst.

Feedback willkommen.



Hallo Synesty,


vielen Dank für das neue Feature, das ist echt super!

Leider habe ich hier noch einen Fall, in dem ich nicht alle benötigten Informationen für die Authentifizierung im abspeichern kann.
Dafür muss ich bei Wayfair zum Beispiel einen extra Call gegen eine separate URL mit separater Subdomain machen.

Das sieht dann so aus:

image


Im Moment sind die benötigten Variablen im Projekt hinterlegt, leider hilft das aber nicht dabei, zwischen verschiedenen Umgebungen (Sandbox und Live) zu unterscheiden.

Selbst wenn ich fürs erste über das neue Feature den Bearer Token nicht automatisch generieren kann, wäre es trotzdem cool wenn ich zumindest die Informationen, die hier Beispielsweise im requestBody benötigt werden, irgendwie abspeichern könnte.


Viele Grüße

Stefan

Hi Stefan,

danke für das Feedback. Wir versuchen noch nachzureichen, dass du die OAuth1-Daten hinterlegen kannst. Damit könntest du dann zumindest in deinem Fall den Token selber holen. Auf unserer langfristigen Roadmap steht, dass der Account dann irgendwann auch selbst holen kann.



Hallo Stefan,


wir brauchen noch mal dein Feedback, um zu wissen, ob dir folgendes auch wirklich helfen würde:

Wir haben jetzt den OAuth2 Account-Type um folgende Felder erweitert, die für den Token Access notwendig sind:


  • Grant Type (bei dir sollte das client_credentials sein vermuten wir)
  • Client ID
  • Client Secret
  • Scope (war jetzt bei dir nicht der Fall, scheint aber oft benötigt zu werden)
  • Audience (ist noch nicht im Standard, aber in einem Draft und scheint von einige APIs verwendet zu werden)





Frage:

Reichen dir diese Felder jetzt in Ergänzung um die bisherigen Felder? Kannst du damit alles abbilden?

Kannst du ggf. noch mal einen gefüllten RequestBody hier posten? (also ohne Variablen, sondern mit den konkreten Werten, damit man mal sieht, ob wir alles erwischt haben?


Das ganze ist für uns der erste Schritt noch zu weiterer Funktionalität was wir bei den HTTP-Accounts vorhaben. Unser Ziel ist es irgendwann einen kompletten OAuth2-Flow inkl. initialem Browser-Redirects + Token Refresh abbilden zu können. Ist noch ein langer Weg. Aber mit diesem Feldern hättest du erstmal alles was du brauchst, um selbst im Flow den Token neu zu holen.


Die obige Änderung wird gerade deployed. Sollte morgen auf allen Servern verteilt und damit nutzbare sein.

Hallo Synesty,


ich habe mich gerade nochmal mit dem Thema beschäftigt.

Leider komme ich da gerade nicht wirklich hinter.

Auch hier habe einen oAuth2 Flow den ich implementieren soll.

Dafür sende ich einem API Call step gegen den Pfad /oauth2/v1/token normal per Basic ClientID + Secret. Ich bekomme den Bearer Token als paresebares JSON zurück.
Um zweiten Step sende ich dann an die eigentliche URL meine Payload. Der Bearer Token wird im Auth Header gesetzt.


Wie wickle ich das jetzt über die neue Funktionalität ab? Wenn ich das über die Basic Auth Methode Versuche, setzt er mir im zweiten Step immer client+secret was ich da aber nicht mehr brauche. Das führt dann zu einem Bad Request.

Wenn ich das über OAuth2 Versuche, kann ich im Auth Step die Basic Credentials nicht mehr setzen. Ich müsste das dann manuell generieren.
Weiterhin habe ich jetzt auch keine Möglichkeit innerhalb der Steps gefunden auf die im HTTP Connector gespeicherten Werte zuzugreifen. Wenn ich auf das + neben den Body oder Header klicke, bekomme ich da keine Vorschläge, so wie das oben im Screenshot zu sehen ist.


Könntet ihr mir da bitte mal auf die Sprünge helfen?

Viele Grüße

Stefan Helme

Wir durchdenken und diskutieren deinen Usecase nochmal. Wir melden uns dann.