Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider

411 vues

Publié le

Dipl.-Ing. Michael Heider zeigt, wie FileMaker Datenbanken auf Online-Systeme mit einer REST-API zugreifen und Daten als JSON-Objekte austauschen können.

Publié dans : Logiciels
  • Identifiez-vous pour voir les commentaires

  • Soyez le premier à aimer ceci

FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider

  1. 1. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 www.filemaker-konferenz.com ... am Beispiel des Online-Portals „Megaventory“ Dipl.-Ing Michael Heider FileMaker Anbindung an Online-Systeme! Bitte Dateien herunterladen unter: http://www.filemakerkonferenz.de/.../.../...
  2. 2. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 www.filemaker-konferenz.com ... am Beispiel des Online-Portals „Megaventory“ Dipl.-Ing Michael Heider FileMaker Anbindung an Online-Systeme!
  3. 3. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Über den Sprecher •  Freier FileMaker-Entwickler seit 1990 (FileMaker Version 2.1) •  FileMaker Neuentwicklung •  FileMaker Weiterentwicklung bestehender Datenbanken •  Consulting zu Datenbanken und Unternehmensprozessen •  Inhaber der Michael Heider GmbH (seit 2002) •  Unternehmensausrichtung „FileMakerConsulting“ in Berlin •  Mitbegründer des „FileMakerCollege“ in Berlin •  Buchautor „FileMaker Pro – Good Programming Practice“ •  FileMaker Zertifizierungen Version 7 bis 16 •  Zertifizierter EU-Datenschutz Spezialist •  Begeisterter Taucher und Behinderten-Tauchlehrer 6
  4. 4. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir? •  Ziel ist, •  zu zeigen, •  wie der Datenaustausch mit einem Webservice über eine REST- Schnittstelle grundsätzlich aufgebaut ist, und •  welche „Anleitungen“ wir an die Hand bekommen und •  wie die Umsetzung in FileMaker implementiert ist und •  [wenn die Zeit reicht] wie wir einen Datenaustausch über eine REST- Schnittstelle in eine FileMaker-Datenbank einbauen können. (Achtung: Kompaktes Ziel, aber die Zeit wird dennoch knapp werden...) •  (einige) Begriffe in diesem Zusammenhang zu klären,
  5. 5. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Womit greifen wir auf das Ziel zu? •  Programm Postman •  Ein eigene kleine FileMaker Datenbank mit nur zwei Tabellen
  6. 6. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was ist das Zielsystem? •  Megaventory: Ein Online-Service für Lagerverwaltung nebst Auftragseingang und Fabrikationsaufträgen und vieles mehr https://www.megaventory.com
  7. 7. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir?
  8. 8. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Welche Begriffe werden in diesem Zusammenhang genannt? cURL JSON REST-API
  9. 9. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was sind cURL, REST-API & JSON? Grobe Abgrenzung dieser Begriffe • cURL (Client für URL): Programmbibliothek zur Übertragung von Dateien in Rechennetzen. Inplementiert in vielen Betriebssystemen. Mittlerweile genutzt zur Übertragung von Daten. Weitere Infos im Web, u.a.: https://de.wikipedia.org/wiki/CURL
  10. 10. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was sind cURL, REST-API & JSON? Grobe Abgrenzung dieser Begriffe • REST (Representational State Transfer, auch RESTful API Web services): Ein Programmierparadigma für Webanwendungen Weitere Infos im Web, u.a.: • API (Application Programming Interface): Eine Programmierschnittstelle • REST-API: Eine Implementierung eines Webservices, die angibt, welche Daten ausgetauscht werden können und wie Daten mit dem Dienst ausgetauscht werden können. https://de.wikipedia.org/wiki/Representational_State_Transfer
  11. 11. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was sind cURL, REST-API & JSON? Grobe Abgrenzung dieser Begriffe • JSON (JacaScript Object Notation): Kompaktes Datenformat zum Austausch von Daten -  Ist für Menschen einfach lesbar -  Ist maschinenlesbar -  Hat nur sehr wenige Regeln -  Name/Value Paare -  Liste von Values -  https://www.json.org/json-de.html
  12. 12. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir?
  13. 13. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie ist der Aufbau von Anfragen? •  Vier Grund-“Bausteine“ •  URL •  Die angesprochene (Web)Service-Ressource: •  Protokoll (http, https, ftp, ftps, ...) & •  Adresse des Services (WebService) & •  Ressource auf dem Server, die angesprochen werden soll •  z.B. https:/megaventory.com/api/v2017a/json/reply/SupplierClientGet •  Die URL kann auch noch Parameter enthalten •  z.B. https:/megaventory.com/api/v2017a/json/reply/ SupplierClientGet?APIKEY=1234567890&filter=client
  14. 14. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie ist der Aufbau von Anfragen? •  Vier Grund-“Bausteine“ •  Methode •  z.B.: GET, POST, PUT, DELETE •  ... es gibt noch viele mehr •  Header •  Meta-Informationen; Maschine-zu-Maschine •  [Für den Menschen meist nicht angezeigt (z.B. im Browser)] •  Daten (optional) •  Sofern wir Daten senden wollen oder müssen •  Diese Daten werden meist als JSON-Objekte formatiert
  15. 15. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie ist der Aufbau von Antworten? •  Zwei Grund-“Bausteine“ •  Header •  Meta-Informationen; Maschine-zu-Maschine •  [Für den Menschen meist nicht angezeigt (z.B. im Browser)] •  Body •  Daten, sofern wir Daten angefordert haben, oder •  Antwort in Form von „OK“ oder einem Fehlercode, oder •  HTML-Seite, oder •  ...
  16. 16. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir?
  17. 17. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht das im 
 Programm Postman aus? •  Warum Postman? •  Das Programm ist gut, um die Verbindung zu einem Online-System auszutesten! •  Was man nicht in Postman schafft, schafft man in anderen Programmen (oder Systemen) erst recht nicht. •  Das Programm ist gut, um Prinzipien kennen zu lernen. •  Test & Prüfen & Ausprobieren! Aber Ziel ist es nicht, das Online-System mit Postman zu bedienen.
  18. 18. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  19. 19. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  20. 20. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was können wir eigentlich anfragen? •  https://api.megaventory.com/v2017a/documentation/index.html
  21. 21. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was können wir eigentlich anfragen? •  http://help.megaventory.com/en/articles/74873-how-do-i-get-started-with-the-api
  22. 22. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was können wir eigentlich anfragen? •  https://api.megaventory.com/v2017a/documentation/index.html
  23. 23. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere erste Anfrage aus? •  URL: •  https://api.megaventory.com/v2017a/json/reply/SupplierClientGet •  Parameter: •  Key: APIKEY •  Value: <eigener API-Schlüssel> •  Methode: •  GET •  Header: •  Key: Content-Type •  Value: application/json •  Body: <leer>
  24. 24. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere erste Anfrage aus? •  Frage nach Authentifizierung •  Hier geht sie über den vorher mitgeteilten API-Key. •  Dieser hat IMMER Gültigkeit – solange er im User-Account beim Dienstleister eingetragen ist. •  Es gibt andere Methoden ( •  keine Authentifizierung, •  Authentifizierung mit Username & Passwort und dabei Vergabe von Session-Cookie, die anschließend mitgesendet werden müssen, •  ... •  Wird hier nicht weiter betrachtet.
  25. 25. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere erste Anfrage aus?
  26. 26. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus? •  URL: •  https://api.megaventory.com/v2017a/json/reply/ProductGet •  Parameter: •  Key: APIKEY •  Value: <eigener API-Schlüssel> •  Methode: •  GET •  Header: •  Key: Content-Type •  Value: application/json •  Body: <leer>
  27. 27. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wieso ist das so nicht sicher? •  Problem •  Authentifizierung wird als Parameter an die URL angehängt. •  Das ist „für jeden“ lesbar. •  Lösung •  Megaventory gibt uns eigentlich vor, die POST-Methode zu nutzen und die Authentifizierung im Body mitzusenden.
  28. 28. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus? •  URL: •  https://api.megaventory.com/v2017a/json/reply/ProductGet •  Parameter: <leer> •  Methode: •  POST •  Header: •  Key: Content-Type •  Value: application/json •  Body: •  {"APIKEY":"b5893a.....“}
  29. 29. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus?
  30. 30. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie schreiben wir in das System? •  URL: •  https://api.megaventory.com/v2017a/json/reply/ProductUpdate •  Parameter: <leer> •  Methode: •  POST •  Header: •  Key: Content-Type •  Value: application/json •  Body: •  ...
  31. 31. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie schreiben wir in das System? •  Body: { "APIKEY":"<eigener API-Schlüssel>“, "mvProduct": { "ProductType": "Buy From Supplier", "ProductSKU": "Fischbrötchen", "ProductDescription": "Die besten Fischbrötchen, die es in Hambug gibt“ }, "mvRecordAction": "Insert", "mvInsertUpdateDeleteSourceApplication": "FileMaker Test-DB" }
  32. 32. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus?
  33. 33. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht das Ganze in FileMaker aus? •  Anfragen immer über den Befehl „Aus URL einfügen[ ]“ •  FileMaker-Parameter:
  34. 34. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht es in FileMaker aus? •  Anfragen immer über den Befehl „Aus URL einfügen[ ]“ •  FileMaker-Parameter: •  „Gesamten Inhalt auswählen“: überschreibt Zielfeld •  „Ziel“: Feld oder Variable, in die der BODY der ANTWORT geschrieben wird •  „URL“: Die URL des Zielsystems •  „SSL Zertifikate verifizieren“: Sicherheitseinstellung => Verbindung nur herstellen, wenn Ziel über SSL-Zertifikat verifiziert ist. •  „cURL-Optionen angeben“: Die cURL-Optionen, die wir angeben wollen oder müssen. Mehrere Optionen werden mit Leerzeichen getrennt aneinander gehängt.
  35. 35. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie passt das zusammen mit dem, 
 was wir kennen? •  Vier Grund-“Bausteine“ •  URL •  => FileMaker-Parameter: „URL“ •  Methode •  => FileMaker-Parameter: „cURL-Optionen angeben“ •  Ausprägung „–X“ •  z.B.: „-X GET“ oder „-X POST“ •  Parameter •  => FileMaker-Parameter: „URL“ •  Parameter werden mit „?“ an die URL angehängt und mit „&“ verknüpft, wenn es mehrere Parameter gibt.
  36. 36. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie passt das zusammen mit dem, 
 was wir kennen? •  Vier Grund-“Bausteine“ •  Daten •  => FileMaker-Parameter: „cURL-Optionen“ •  Ausprägung „–-data“ (oder „-D“) •  z.B.: „--data APIKEY=abcd •  Für ein JSON-Objekt: "--data @$json” •  Das JSON-Objekt wird zuvor in die Variable „$json“ geschrieben (FileMaker-Befehl „Variable setzen [ ]“) und dann übergeben mit der cURL-Option „--data @$json“
  37. 37. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht die Anfrage nach der Produktliste in FileMaker aus? •  Anfrage über den Befehl „Aus URL einfügen[ ]“ •  „Gesamten Inhalt auswählen“: •  <nach eigenem Ermessen> •  „Ziel“: •  $$result •  „URL“: •  https://api.megaventory.com/v2017a/json/reply/ProductGet •  „SSL Zertifikate verifizieren“: •  aus •  „cURL-Optionen angeben“: •  "-X POST " & "-H "Content-Type:application/json" " & "--data @$json " & "--show-error --dump-header $$dump"
  38. 38. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht die Anfrage nach der Produktliste in FileMaker aus? •  „cURL-Optionen“ im Detail •  "-X POST": Methode POST •  "-H "Content-Type:application/json"": Unser Header •  "--data @$json": Unsere Daten in der Variablen $json •  "--show-error": Anforderung: „Weise Fehler aus!“ •  "--dump-header $$dump“: Anforderung: „Schreibe den Header in die Variable $$dump“ (Anderenfalls würden wir den Header nicht bekommen!)
  39. 39. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  40. 40. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  41. 41. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  42. 42. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  43. 43. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  44. 44. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie läßt sich das umsetzen? •  Es läßt sich ein universelles Script schreiben, das sich für (fast) alle Anfragen an (fast) alle WebServices nutzen läßt. •  Das Script erwartet einen Script-Parameter in Form eines JSON-Objekts mit folgemdem Inhalt: •  URL ist Text •  Parameter ist JSON-Objekt •  Methode ist Text •  Header ist JSON-Objekt •  Daten ist Text •  JSON-Daten-Objekt ist JSON-Objekt •  Das Script berechnet daraus die FileMaker-Parameter „url“& „cURL-Optionen“ und führt die Anfrage aus.
  45. 45. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie läßt sich das umsetzen? •  Es läßt sich ein universelles Script schreiben, das sich für (fast) alle Anfragen an (fast) alle WebServices nutzen läßt. •  Als Ergebnisse erhalten wir: •  Ein Script-Ergbnis in Form eines JSON-Elements mit folgenden Inhalt: •  error FileMaker Fehlercode •  errorextern Fehler-Antwort des Services •  time benötigte Zeit der Anfrage in Millisekunden •  Eine globale Variable $$result mit dem Body der Antwort •  Eine globale Variable $$dump mit dem Header der Anfrage
  46. 46. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht dieses Script aus?
  47. 47. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie wird das Script genutzt?
  48. 48. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Welche cURL-Optionen gibt es? •  cURL-Optionen von FileMaker sind nachzulesen in FileMaker-Hilfe. •  In den Unterlagen auch als „Supported cURL options.pdf“ •  Tutorial von Russel Watson in der FileMaker Community •  https://community.filemaker.com/en/s/article/new-curl-options-in-insert- from-url •  cURL-Optionen allgemein sind nachzulesen: •  Internet •  Fachbücher •  In den Unterlagen als „Everything-cURL.pdf“ •  https://bookcurl.haxx.se
  49. 49. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Daten abrufen können wir nun, aber wie bereiten wir diese auf für die Tabellen? •  Daten erhalten wir als JSON-Objekte. •  Diese müssen wir „parsen“, um die einzelnen Informationen zu erhalten und in Datensätze und Felder einzutragen. •  Hierzu stellt uns FileMaker drei Befehle zur Verfügung: •  JSONGetElement •  JSONListKeys •  JSONListValues
  50. 50. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie können wir JSON-Objekte in FileMaker bearbeiten? •  Wir erhalten in Filemaker sechs Funktionen zum Arbeiten mit JSON-Objekten:
  51. 51. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  52. 52. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie können wir JSON-Objekte parsen?
  53. 53. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  54. 54. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  55. 55. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie geht es weiter? •  Bibliothek von kostenfreien REST-APIs zum Ausprobieren und Üben https://github.com/public-apis/public-apis
  56. 56. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Abgabe •  Bitte die fertigen Folien im Format Keynote, Powerpoint oder PDF in die Sprecherdatenbank hochladen. (NICHT! per Email senden) •  Dateiname: FMK2019-Vorname-Nachname-Titel.Dateiendung •  Beispiel: FMK2019-Bernhard-Schulz-FileMaker_Data_API.pptx •  Bitte Kurzbeschreibung angeben, zum Beispiel: „Bernhard Schulz zeigt die neuen FileMaker Data API Funktionen in FileMaker 18“ •  Bitte Keywords angeben, zum Beispiel: FileMaker 18, Data API •  Warum? Wir laden die Folien zu Slideshare hoch. Je besser Kurzbeschreibung, Keywords und Titel sind, desto besser wird der Inhalt bei Google gefunden! • Deadline fertiger Entwurf: 9.10.2019 • Deadline finale Version: 19.10.2019 •  ==> die fertigen Files gerne nach dem Vortrag, da erfahrungsgemäß oft noch Links etc. aufgrund Teilnehmerkommentare ergänzt werden etc.
  57. 57. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages Entwurf - diese Sponsorenseite bitte am 9.10.2019 nochmals von der bis dahin aktualisierten Vorlage kopieren!

×