Templates by BIGtheme NET
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1
  • 2

THEMA:

Internet PI und Rest API 06 Aug 2021 16:14 #1

  • Soko
  • Sokos Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 535
  • Dank erhalten: 438
Hallo,

ich versuche verzweifelt eine Rest API mittels des Internet-Plugins anzusprechen, bekomme es aber leider nicht so richtig gebacken, weil ich es nicht schaffe die von CURL bekannte Struktur dort umzusetzen. Einfache abfragen ungeschützer APIs klappen, weiteres, insbesondere die Legitimierung pp aber nicht.

@Stefan, sollte ich hier nicht einfach blind sein und die Lösung doch sehr einfach, wäre es gerade im im Hinblick darauf, dass cX5 ja sehr gut JSON spricht nicht eine Idee ein REST API plugin anzubieten?

Ciao,
Joachim

cX4Web cX4Web Code

Was ist das?

1 Internet: HTTP-Abfrage, URL 'jsonplaceholder.typicode.com/posts?userId=3' in [Eingabe]
2 Anzeige-Fenster 'Anzeige-Fenster1', ID='Anzeige-Fenster1'
3 RTF-Eingabefeld Text='[Eingabe$]' (ID='RTF_1', X='1', Y='1', Breite='-1', Höhe='-1', Zielfenster='Anzeige-Fenster1')
4 Button 'Beenden' (ID='Beenden', X='52,39', Y='96,84', Zielfenster='Anzeige-Fenster1')
5 Warte Endlos (Warten auf zu behandelnde Ereignisse)
6 :: Anzeige(Anzeige-Fenster1)_Element(Beenden)_Klick
7 Beende Skript

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


  (7 Zeilen, cX 5.0.8.2)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von Soko.

Internet PI und Rest API 07 Aug 2021 12:29 #2

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1127
  • Dank erhalten: 1664
Hallo, Joachim!

Tja, eine solche Idee war mir auch schon gekommen, aber ich habe das dann doch verworfen.
Jede RESTful-API ist anders und erwartet ein anderes Abfrageformat (meist JSON, stimmt) mit unterschiedlichen Inhalten sowie manchmal bestimmte Header usw.
Da gibt es leider keinen Standard, den cX übernehmen könnte - sorry!

Dennoch stellt cX5 mit dem Einstellungen- und dem Internet-Befehl ja alle Möglichkeiten bereit, um die jeweiligen Anfragen zusammenzubauen (JSON, Header usw.).
Leider muss man sich dann aber in die Definition der jeweiligen Schnittstelle genau einarbeiten - eine mühsame Sache, zugegeben.

Ich habe auch kein Beispielskript für sowas an-/beigelegt, da ich keine einigermaßen repräsentative und offene REST-API gefunden habe, um das zu demonstrieren.
Hast du einen Vorschlag?
Dennoch bleibt das Problem, dass ein Beispiel dann selten auf eine andere API übertragbar ist (wie gesagt: alle sind anders)...

Also: Interessantes Thema, aber sehr schwer zu vereinfachen.

Und da ich nicht recht weiß, was genau du da versuchst und was das Beispielskript mir dazu sagt, kann ich da auch wenig helfen.
Übrigens ist das, was das Beispiel zurückliefert, eigentich kein gültiges JSON, sondern wohl nur eine [Array-Definition], die eigentlich innerhalb eines {JSON}-Ausdrucks stehen sollte. Und der Einstellungen-Befehl erkennt daraus kein JSON - möglicherweise würde das Ergänzen dieses Ergebnisses um ein JSON-Gerüst helfen (falls du anhand dieser Daten sowas vorhast)?
Jedenfalls wünsche ich viel Erfolg bei deinen Versuchen!

Liebe Grüße
Stefan
Folgende Benutzer bedankten sich: Soko, daywalker

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Internet PI und Rest API 07 Aug 2021 13:08 #3

  • Soko
  • Sokos Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 535
  • Dank erhalten: 438
Hallo Stefan,

Danke für Deine Antwort: :-)

Das jede Rest anders ist, ja, da hast Du sicher recht.

Bislang behelfe ich mir mit Windows curl und da sind die Möglichkeiten mit dem cx5 Starte-Befehl auch viel mächtiger als unter cx4.

Konkret geht es bei mir um die Api von Nextcloud und Nextcloud Deck...

Was vielleicht auch hilfreich wäre, weil ich das nicht gebacken bekomme: Die Abbildung des curl im INternetplugin oder eine eigenes diesbezügliche PI.

Ciao,
Joachim

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Internet PI und Rest API 07 Aug 2021 14:31 #4

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1127
  • Dank erhalten: 1664
Hallo, Joachim!

Ich kenne mich mit CURL zwar nicht aus, aber das Tool macht ja nix anderes als das Internet-PI.
Der Trick ist, die von der REST-API geforderten Daten richtig zu übergeben.
Dabei kommt es natürlich darauf an, wie, wo und in welcher Form diese Daten übergeben werden sollen.
Oft ist beispielsweise ein POST mit Parametern gefordert, und das mit einem bestimmten Datenformat.

Als Beispiel müsste wohl sowas wie
  curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST http://localhost:2000/test
abgebildet werden mit dem Internet-PI, wenn unter "Sendetext" die Parameter angegeben werden (was automatisch POST verwendet):
  key1=value1
  key2=value2

(oder halt hier passenden JSON-Text reinschreiben)

und in "Datentyp" dann
  application/json

Nun halt die URL in den gleichnamigen Parameter setzen und als HTTP-Abfrage absenden.
Das Ergebnis (vermutlich JSON) wird dann in den Einstellungen-Befehl gefüttert und dort die gewünschten Daten herausgeholt.

Übersehe ich da was? Oder ist das doch zu einfach gedacht (wie gesagt: habe ich noch nicht ausprobiert)?
Jedenfalls könnte dir das etwas weiterhelfen (hoffe ich) - viel mehr kann ich da leider auch nicht zu sagen...

Liebe Grüße
Stefan
Folgende Benutzer bedankten sich: Soko, daywalker

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Internet PI und Rest API 07 Aug 2021 15:30 #5

  • Soko
  • Sokos Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 535
  • Dank erhalten: 438
Nochmals herzlichen Dank, Stefan!

Ich werde weiter probieren.

Mein Hauptproblem mit dem Internet PI scheint mir zu sein, dass die Nextcloud eine anderes Login benötigt und die User und Passworteingabe im Internet PI das wohl nicht kann.

Kann es sein, dass die nur bei Seiten funktioniert die https://user:password@nnn.de/site zulassen?

cX4Web cX4Web Code

Was ist das?

1 Internet: HTTP-Abfrage, URL 'of99.net/index.php/apps/deck/api/v1.0/boards', Sendetext 'OCS-APIRequest= true' in [Eingabe]
2 Meldung '[Eingabe$]', Titel 'Titel', Buttons 'OK, Abbrechen', Symbol 'Information'cxcode]**cx5AR-LC AAAAAAABAB 9UU1PAjEQv Zv4H5rqdbc LrAtrWBICR klECBg8GA- z2wEKS1vbr qK_3i4f4ea pM9OZ9-a96 c4LI7TrXV8 R0h1UpasM9 jh22Tk-fqj dDiS3h-ySk 9P7-qMxoyP p0Eh0lEzLa jWSGb1rx-2 k3WgEwFMex DkkQacTtYK olUIOaXS3x ISSF9ih1VB 4iGKvwzNMe CalZDTMKCV jxX1Lg5I3z PucG7Q2o2v ntL1nTC3TN PRTTEiO-1C vNQOtLeNYb H0k2FcjjFi uwNSACzAC8 tLDPQi5ghw peVYrIetVM urQuo1V8lS cgrXfynBP9 uh-g047uZm sN9tZM2r6Z abKuIzGcYu SOXorcO_Ty WAe9KejGX5 WHisjzlRYt 1o3BAcLKH3 5IGWgvFrpj gb6hUtRgBN KsiP_EwJHY 2v17F_vx94 MWHmOI__7S dbtx3nQH_R ywy47Xf0Pi xd7p_4BAAA ==*[/cxcode]
  (2 Zeilen, cX 5.0.8.2)


Mit curl klappt es hingegen...
An anderer Stelle komme ich der Sache aber schon näher...

cX4Web cX4Web Code

Was ist das?

1 Internet: HTTP-Abfrage, URL 'of99.net/index.php/login/v2', Sendetext 'of99.net/index.php/login/v2' in [Eingabe]
2 Einstellungen JSON XML/JSON formatieren in [Eingabe], Quelle/Datei '[Eingabe$]'
3 Meldung '[Eingabe$]', Titel 'Titel', Buttons 'OK, Abbrechen', Symbol 'Information'

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


  (3 Zeilen, cX 5.0.8.2)


Ciao,
Joachim
Folgende Benutzer bedankten sich: daywalker

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von Soko.

Internet PI und Rest API 08 Aug 2021 16:13 #6

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1127
  • Dank erhalten: 1664
Hallo, Joachim!

Stimmt - die Authentifizierung im Internet-PlugIn ist momentan noch auf diesen Typ mit user:password begrenzt.
Ich habe mir das Thema noch einmal angesehen und sehe ein, dass auch die "Basic"-Authentifizierung (die beim ersten Aufruf 401 oder 404 liefert) funktionieren sollte.
Wird ergänzt - Danke für den Hinweis!

Liebe Grüße
Stefan
Folgende Benutzer bedankten sich: Soko, daywalker

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1
  • 2

Community

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Diese Cookies sind essenziell für den Betrieb dieser Website. Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.

Sie sind noch nicht Mitglied unserer Community? Melden Sie sich jetzt an!

Anmelden