Beispiel RestAPI

Beispiel RestAPI

Beitragvon catweasel » 2. Feb 2018, 12:19 Beispiel RestAPI

Hallo

Kennt jemand ein einfaches Beispiel um mit Lazarus via RestAPI Informationen aus einer Webseite auszulesen?

Alle meine Versuche mit httpsend von (ararat) synpase auch nur irgendetwas von https://jsonplaceholder.typicode.com/todos auszulesen
sind ohne den kleinsten Erfolg gescheitert. :cry:

Gruß
Michael
catweasel
 
Beiträge: 195
Registriert: 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 18.3 - (L 1.6 FPC 3.0.0) | 
Nach oben

Beitragvon m.fuchs » 2. Feb 2018, 12:36 Re: Beispiel RestAPI

Hier: www.michael-fuchs.net/newsgroups/lazaru ... xample.zip

Ohne Synapse sondern mit dem FpHttpClient und auch nur schnell zusammengefriemelt.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1949
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon catweasel » 2. Feb 2018, 13:06 Re: Beispiel RestAPI

Danke für die Hilfe.
Allerdings habe ich hier noch Probleme beim compilieren in der Funktion ParseJson:

Code: Alles auswählen
function TForm1.ParseJson(const Json: String): TJSONArray;
begin
  with TJSONParser.Create(Json, [joUTF8]) do begin
    Result := Parse as TJSONArray;
    Free;
  end;
end;


Code: Alles auswählen
Projekt kompilieren, Ziel: JsonExample.exe: Exit code 1, Fehler: 3
unit1.pas(67,34) Error: Identifier not found "joUTF8"
unit1.pas(67,43) Error: Expression type must be class or record type, got <erroneous type>
unit1.pas(68,15) Error: Identifier not found "Parse"


Muß ich hier noch irgendeine Komponente installieren?

Gruß
Michael
catweasel
 
Beiträge: 195
Registriert: 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 18.3 - (L 1.6 FPC 3.0.0) | 
Nach oben

Beitragvon m.fuchs » 2. Feb 2018, 13:34 Re: Beispiel RestAPI

Naja, wenn deine Signatur unten stimmt, dann solltest du mal auf ein aktuelles Lazarus updaten.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1949
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon catweasel » 2. Feb 2018, 14:07 Re: Beispiel RestAPI

m.fuchs hat geschrieben:Naja, wenn deine Signatur unten stimmt, dann solltest du mal auf ein aktuelles Lazarus updaten.

Hatte ich auch kurz daran gedacht, aber da das bei Dir genauso ist, hatte ich den Gedanken wieder verworfen.

Dann schau ich mal nach einer neueren Version.
Ich hatte vor einiger Zeit schon mal versucht eine aktuelle Version zu installieren, was aber aus irgend einen Grund nicht funktioniert hat. Daraufhin bin ich wieder zur 1.6 gewechselt.

Gruß
Michael
catweasel
 
Beiträge: 195
Registriert: 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 18.3 - (L 1.6 FPC 3.0.0) | 
Nach oben

Beitragvon m.fuchs » 2. Feb 2018, 14:25 Re: Beispiel RestAPI

catweasel hat geschrieben:
m.fuchs hat geschrieben:Naja, wenn deine Signatur unten stimmt, dann solltest du mal auf ein aktuelles Lazarus updaten.

Hatte ich auch kurz daran gedacht, aber da das bei Dir genauso ist, hatte ich den Gedanken wieder verworfen.

Mea culpa, hatte ich nicht aktualisiert.

Noch eine Idee: ersetz die Zeile mal durch
Code: Alles auswählen
with TJSONParser.Create(Json, True) do begin
dann sollte es auch mit 1.6 gehen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1949
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon catweasel » 4. Feb 2018, 10:16 Re: Beispiel RestAPI

m.fuchs hat geschrieben:Noch eine Idee: ersetz die Zeile mal durch
Code: Alles auswählen
with TJSONParser.Create(Json, True) do begin
dann sollte es auch mit 1.6 gehen.

Super, so funktioniert es. :D
Ich hatte zwar zunächst Probleme, daß lag aber daran das diese Webseite mit den Testdaten im Internet liegt und hier über einen Proxy läuft.
Die "richtige" Seite die ich abfragen muß liegt im eigenen Netzwerk, ohne Proxy.

Danke und noch einen schönen Sonntag
Michael
catweasel
 
Beiträge: 195
Registriert: 17. Mär 2009, 10:51
OS, Lazarus, FPC: Win10 64Bit // Linux Mint 18.3 - (L 1.6 FPC 3.0.0) | 
Nach oben

Beitragvon theo » 4. Feb 2018, 12:22 Re: Beispiel RestAPI

A propos JSON:
Ich möchte nochmal auf das viel zu unbekannte Tool JSON-Viewer hinweisen, welches sich in <laz>/tools/jsonviewer/ befindet.
Das ist wirklich praktisch, wenn man den Inhalt und Struktur einer JSON Datei anschauen möchte.
Bei mir ist das im System mit *.json verknüpft.


Bild
theo
 
Beiträge: 8046
Registriert: 11. Sep 2006, 18:01

Beitragvon Mathias » 4. Feb 2018, 17:00 Re: Beispiel RestAPI

Ist JSON ein erweitertes, flexibleres Format von ursprünglich INI, später XML ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3993
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon m.fuchs » 4. Feb 2018, 17:19 Re: Beispiel RestAPI

What? Nein, die drei haben miteinander gar nichts zu tun.

INI ist ein textbasiertes Formet welches Schlüssel=Wert - Paare benutzt um die Daten zu speichern. Diese können in Sektionen gruppiert werden. Ein Baumstruktur ist nicht möglich.

XML ist kein Format sondern eine Auszeichnungs-(meta-)sprache. Das Ding ist ein wahres Monster von dem unzählige Formate wie RSS, SVG, GPX und so weiter ableiten.

JSON ist eigentlich eine Notation für Javascript-Objekte. Tatsächlich sollte jede gültige JSON-Datei gleichzeitig auch gültiges Javascript sein.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1949
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon theo » 4. Feb 2018, 17:37 Re: Beispiel RestAPI

Stimmt.
Mmn geht JSON aber schon ziemlich über Javascript hinaus, da es doch eine recht praktische und sparsame Art ist, hierarchische Daten bzw. Objekte zu "serialisieren".
Bevor ich das Rad neu erfinde, nehme ich dann auch gerne JSON, zumal ein Parser ja ziemlich überall (FPC, PHP...) zur Verfügung steht.
theo
 
Beiträge: 8046
Registriert: 11. Sep 2006, 18:01

Beitragvon Mathias » 4. Feb 2018, 18:08 Re: Beispiel RestAPI

INI ist immer noch das einfachste, wen man einfache Konfigurations-Dateien braucht.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3993
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon m.fuchs » 4. Feb 2018, 18:11 Re: Beispiel RestAPI

Ja, das sollte jetzt keine Aussage sein, dass man JSON nur in Javascript verwenden sollte. Ich wollte nur die Herkunft der drei gegenüberstellen.

Tatsächlich ist für eine leichtgewichtige API selten etwas besser als JSON. Und auch als dateibasiertes Speicherformat ist es inzwischen unverzichtbar.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1949
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

• Themenende •

Zurück zu Windows



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried