Wie Sie online gesehen haben, Idera (Embarcadero Muttergesellschaft) vor kurzem erworbener apilayer, ein Unternehmen , eine Reihe von REST API Mikro-Dienstleistungen anbieten, die von IP – Adresse Geolocation – E – Mail und prüft die Telefonnummer, von Finanzinformationen zu Wetter und Flugverfolgung. Eine Liste der Unternehmensprodukte finden Sie unter https://apilayer.com/ . Jedes Produkt verfügt über eine eigene Website, auf der Sie sich in der Regel für ein Konto mit einer begrenzten Anzahl kostenloser REST-Anrufe anmelden können.
In diesem Blog-Beitrag möchte ich nicht auf die verfügbaren Dienste eingehen, sondern mich darauf konzentrieren, wie sie von RAD Studio aus aufgerufen werden. Ich werde nur zwei Dienste verwenden, die kostenlose und offene REST-Länder-API und einen ihrer Premium-Geolokalisierungsdienste.
Verwenden der API für REST-Länder
Mein Ausgangspunkt für die Erkundung der Apilayer-Dienste ist ein einfacher und völlig kostenloser Dienst, der zusammen mit der vollständigen Dokumentation unter https://github.com/apilayer/restcountries verfügbar ist . Um ein erstes Experiment durchzuführen, habe ich den REST-Debugger verwendet, um den Service abzufragen, den Namensendpunkt zu verwenden und optional einen Parameter zu übergeben, wie Sie unten sehen können (mit dem Parameterwert „united“):
Sobald die Daten im REST-Debugger korrekt angezeigt werden, können Sie einfach über die Schaltfläche Komponenten kopieren einen Schnappschuss der Konfiguration für die REST-Clientbibliothekskomponente erstellen, die zum Erstellen einer Anwendung erforderlich ist. Erstellen Sie jetzt eine Delphi- oder C ++ – Anwendung in RAD Studio, entweder VCL oder FMX, und fügen Sie die Komponenten in ein Datenmodul ein – oder in ein Formular, wenn Sie faul sind. In diesem Fall habe ich Delphi und VCL verwendet… und ich war faul.
Ich habe ein Panel mit einer Bearbeitung und einer Schaltfläche und DBGrid (plus einer DataSource-Komponente) gelöscht, sie verkabelt und die RESTRequest zur Entwurfszeit ausgeführt, um eine Vorschau der Daten zu erhalten:
Der Code zum Filtern ist sehr einfach:
Prozedur TForm43.Button1Click (Absender: TObject);
beginne
wenn Edit1.Text = ”dann
RESTRequest1.Resource: = ’name‘
sonst
RESTRequest1.Resource: = ’name /‘ + Edit1.Text;
RESTRequest1.Execute;
Ende;
Die einzige andere Änderung, die ich vornehmen musste, war die Änderung der TypesMode-Eigenschaft der RESTResponseDataSetAdapter1-Komponente in JSONOnly, da bei einigen Datenanalysen fälschlicherweise versucht wurde, zeitzonenbezogenen Text in ein Datum zu konvertieren, was zu einer Ausnahme führte.
Reverse GeoCoding mit der Position Stack API
Als nächstes habe ich versucht, die kostenlose Version einer kostenpflichtigen API ( https://positionstack.com/) zu verwenden . Dieser Dienst bietet direkte und inverse Geokodierung, Kartierungsdienste und mehr. Hier habe ich zum Beispiel eine einfache „Vorwärts“ -Geocodierung durchgeführt, eine Adresse angegeben und den Breiten-, Längen- und anderen lokalen Informationen im REST-Debugger gelesen. Um das tabellarische Ergebnis zu erhalten, musste ich den JSON-Stamm mit dem Datenelement konfigurieren :
In diesem Fall müssen Sie sich für einen Entwicklerschlüssel anmelden und diesen als zusätzlichen Parameter für die Anforderung eingeben. (Möglicherweise möchten Sie diesen Schlüssel codieren, anstatt ihn in der endgültigen Anwendung als einfache Zeichenfolge zu verwenden.)
Ähnlich wie oben können wir jetzt die Komponenten in eine RAD Studio-Anwendung kopieren und eine geokodierte FMX-App verwenden, diesmal basierend auf Live-Bindungen. Diese App kann auch Daten zur Entwurfszeit anzeigen, in diesem Fall den Breiten- und Längengrad meiner Stadt (plus eine andere Stadt mit demselben Namen in den USA):
Fazit
Durch die Nutzung von Micro-Service-APIs für die Anwendungsentwicklung, sowohl auf dem Desktop als auch auf dem Handy, kann der Aufbau und die Bereitstellung innovativer Funktionen erheblich beschleunigt und gleichzeitig auf einer skalierbaren Infrastruktur bereitgestellt werden. Ich freue mich darauf, mehr von den Apilayer-Diensten zu nutzen und Sie zu ermutigen, einen Blick darauf zu werfen, was sie für Ihre aktuellen zukünftigen Projekte bieten können.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition
Der Artikel ist nun schon fast 2 Jahre alt, aber auf der Website von Apilayer finde ich Code-Beispiele in 10 verschiedenen Programmiersprachen, nicht jedoch in Delphi. Ist es geplant, dies irgendwann zu ergänzen?
Konkret versuche ich, die „Image To Text“ Api zu verwenden. Für meine Zwecke macht dies nur Sinn, wenn ich die Bilder hochlade, aber ich verstehe in der Dokumentation nicht, wie ich dieses Bild in dem POST-Request übergeben muss. Klar – wohl irgendwie Base64-codiert, aber in der Doku ist von einem Feld namens Body im Body die Rede vom Typ File?!?
——————————————————————————–
This article dates from almost 2 years ago, but on the apilayer website I can find code examples in 10 different programming languages whereas none of them being Delphi. Is there a plan to add Delphi code examples as well?
I’m struggling with the „image to text“ API: for me it makes only sense to upload the images, but in the documentation I don’t understand how to incorporate the image in the POST request. I guess with some Base64 encoding, but in the documentation they speak about a parameter „body“ in the body of type file. When I try to send a request via REST debugger, I always get an error message „MIME type not supported“.