Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
DieJavaScript Object Notation (JSON) hat sich zum De-facto-Standard für RESTful-Schnittstellen entwickelt, aber es gibt ein Ökosystem aus wenig bekannten Standards, Tools und Technologien, die Architekten und Entwickler schon heute nutzen können, um gut gestaltete Anwendungen zu erstellen. JSON ist mehr als nur ein einfacher Ersatz für XML, wenn du einen AJAX-Aufruf machst. Solide Standards und bewährte Methoden können genutzt werden, um die Energie und den Enthusiasmus rund um JSON zu nutzen und wirklich elegante, nützliche und effiziente Anwendungen zu entwickeln.
Das Einzige, was fehlt, ist ein Buch, das alles zusammenfasst. Dieses Buch soll Entwicklern helfen, JSON zu nutzen, um Anwendungen und Dienste der Unternehmensklasse zu entwickeln. Mein Ziel ist es, die Verwendung von JSON-Tools und das Konzept des Nachrichten-/Dokumentendesigns als Bürger erster Klasse in der schnell wachsenden API-Gemeinschaft zu fördern.
Meine Reise zu JSON begann 2007, als ich ein großes Webportalprojekt leitete und wir eine Dropdown-Liste mit mehreren tausend Einträgen füllen mussten. Damals las ich gerade "Head First AJAX " von Rebecca Riordan (O'Reilly), also hatte ich einen guten architektonischen Ansatz. AJAX würde die Probleme mit der Latenzzeit und dem Laden der Seite lösen, aber was ist mit den Daten? Ich hatte schon seit einigen Jahren erfolgreich XML verwendet, aber das schien mir zu viel für die anstehende Aufgabe - die Übertragung von Daten aus dem Backend einer Webanwendung in die Ansicht - zu sein. Head First AJAX erwähnte ein neues Datenformat namens JSON, und es schien der richtige Weg zu sein. Mein Team suchte nach APIs, die unsere Java-Objekte in JSON umwandeln konnten, und entschied sich für diejenige, die die einfachsten und kürzesten JUnit-Tests hatte - das Ziel war, das Einfachste zu tun, was überhaupt funktionieren konnte. Wir haben die Anwendung strengen Belastungstests unterzogen, und die Java-zu-JSON-Konvertierung war nie ein Leistungsproblem. Die Anwendung wurde in der Produktion hochskaliert, und die Benutzer sahen ihre Dropdown-Liste rechtzeitig.
Auf meinem Weg habe ich die Verwendung von JSON für Webanwendungen, RESTful APIs und Messaging in Betracht gezogen. 2009 arbeitete ich immer noch mit XML, weil XML Schema die semantische Validierung bot, die für einen sinnvollen Datenaustausch erforderlich war. Damals war ich also der Meinung, dass JSON für Web-Benutzeroberflächen (UIs) verwendet werden sollte (wegen der Geschwindigkeit) und XML für Webdienste und Messaging (wegen der Integration). Aber dann hörte ich 2010 von JSON Schema und stellte fest, dass ich keinen Bedarf mehr an XML hatte. Die JSON-Schema-Spezifikation befindet sich zwar noch in der Entwicklung, ist aber inzwischen ausgereift genug, um sie für die Integration in Unternehmen zu nutzen.
Zu diesem Zeitpunkt war ich süchtig nach JSON, oder besser gesagt, besessen davon. Ich begann, mich im Internet umzuschauen, um zu sehen, was JSON noch alles kann, und fand zahlreiche APIs, Online-Tools, Suchfunktionen und vieles mehr. Kurz gesagt: Alles, was mit XML möglich war, kann (und sollte) jetzt auch mit JSON gemacht werden.
Dann begann ich, in Büchern nach JSON zu suchen, und war enttäuscht, als ich nur ein oder zwei Kapitel zu diesem Thema in einem JavaScript- oder RESTful Web Services-Buch fand. Ich sah eine wachsende JSON-Gemeinschaft mit vielen Tools, Artikeln und Blogs, aber es gab keinen einzigen Ort - außer Douglas CrockfordsJSON-Seite - deralles zusammenfasste.
Zielgruppe, Annahmen und Herangehensweise
Dieses Buch richtet sich an Architekten und Entwickler, die Web- und mobile Anwendungen, RESTful-APIs und Messaging-Anwendungen entwerfen/implementieren. Die Codebeispiele sind in JavaScript, Node.js, Ruby on Rails und Java. Wenn du ein Groovy-, Go-, Scala-, Perl-, Python-, Clojure- oder C#-Entwickler bist, musst du dich an den Codebeispielen orientieren. Aber du kannst dir sicher sein, dass die meisten großen/modernen Sprachen eine hervorragende JSON-Unterstützung bieten. Für Architekten habe ich Richtlinien, bewährte Methoden sowie Architektur- und Designdiagramme zur Verfügung gestellt, wo es angebracht ist. Aber neben der visionären Führung beweisen echte Architekten ihre Ideen mit funktionierendem Code. Ich liebe es zwar, mit JSON zu arbeiten und Code zu schreiben, aber ohne Anwendungsfälle und einen geschäftlichen und technischen Kontext ist das völlig bedeutungslos. Für Entwickler ist dieses Buch vollgepackt mit Codebeispielen, Werkzeugen und Unit Tests sowie einem GitHub-Repository (siehe "Codebeispiele").
In den Kapiteln 5-10 gibt es nur Code-Beispiele in Node.js, um die Dinge einfach und fokussiert zu halten. Aber es ist nicht schwer, diese Beispiele auf die Plattform deiner Wahl zu übertragen.
Was bedeutet "bei der Arbeit"?
Als ich Mitte der 2000er Jahre zusammen mit Scott Davis JBoss at Work geschrieben habe, war unsere Vision, ein Buch zu schreiben, das Entwickler/innen bei ihrer täglichen Arbeit nutzen können. Genauso ist es das Ziel von JSON at Work, Entwicklern praktische Beispiele zu geben, die auf meinen Erfahrungen mit JSON basieren. Zu diesem Zweck habe ich (wo immer möglich) Unit-Tests in jedes Kapitel eingebaut. Es ist ganz einfach: Wenn es für ein Stück Code keinen Test gibt, dann gibt es diesen Code nicht. Punkt.
Erwarte, dass du die Ärmel hochkrempelst und dir Code ansiehst. Egal ob du Architekt oder Entwickler bist, hier findest du etwas, das dir bei deiner Arbeit hilft.
Was du lernen wirst
Wenn du die Beispiele in diesem Buch liest und befolgst, lernst du, wie du die folgenden Dinge tun kannst:
-
JSON-Grundlagen und wie man JSON-Daten modelliert
-
JSON mit Node.js, Ruby on Rails und Java verwenden
-
JSON-Dokumente mit JSON-Schema strukturieren, um APIs zu entwerfen und zu testen
-
Durchsuche den Inhalt von JSON-Dokumenten mit JSON-Suchwerkzeugen
-
Konvertiere JSON-Dokumente in andere Datenformate mit JSON Transform Tools
-
JSON als Teil einer Unternehmensarchitektur verwenden
-
Vergleich von JSON-basierten Hypermedia-Formaten, einschließlich HAL und
json:api
-
Nutzung von MongoDB für die Speicherung und den Zugriff auf JSON-Dokumente
-
Verwenden Sie Apache Kafka, um JSON-basierte Nachrichten zwischen Diensten auszutauschen
-
Nutze frei verfügbare JSON-Tools und -Werkzeuge, um das Testen zu vereinfachen
-
Rufe APIs in deiner bevorzugten Programmiersprache mit einfachen Dienstprogrammen und Bibliotheken auf
Womit du arbeiten wirst
Hier ist ein Beispiel für das JSON-Tooling, das du in diesem Buch verwenden wirst:
-
JSON-Editoren/Modellierer
-
Unit-Testing-Tools (z. B. Mocha/Chai, Minitest, JUnit)
-
JSON-Validatoren
-
Ein JSON-Schema-Generator
-
JSON Suchwerkzeuge
-
JSON Transform (Templating) Tools
Für wen dieses Buch nicht geeignet ist
Dieses Buch ist nichts für dich, wenn dein einziges Interesse an JSON darin besteht, AJAX-Aufrufe von JavaScript aus zu tätigen. Obwohl ich dieses Thema abdecke, ist es nur die Spitze des Eisbergs. Viele JavaScript-Bücher haben das Kapitel, das du suchst.
Entwickler, die ein umfassendes Nachschlagewerk über REST, Ruby on Rails, Java, JavaScript usw. suchen, werden hier nicht fündig. Dieses Buch stützt sich auf diese Technologien, konzentriert sich aber darauf, wie man JSON mit diesen Sprachen und Technologien verwendet.
Organisation
Dieses Buch besteht aus den folgenden Teilen:
-
Anhänge
Teil I, JSON Überblick und Plattformen
-
Kapitel 1, JSON-Übersicht, beginnt mit einem Überblick über das JSON-Datenformat, beschreibt bewährte Methoden für die Verwendung von JSON und stellt die im Buch verwendeten Werkzeuge vor.
-
Kapitel 2, JSON in JavaScript, zeigt, wie man JSON mit JavaScript, Node.js und Mocha/Chai Unit Tests verwendet.
-
Kapitel 3, JSON in Ruby on Rails, beschreibt, wie man zwischen Ruby-Objekten und JSON konvertiert und in Rails integriert.
-
In Kapitel 4, JSON in Java, erfährst du, wie du JSON mit Java und Sprint Boot verwenden kannst.
Teil II, Das JSON-Ökosystem
-
Kapitel 5, JSON Schema, hilft dir, JSON-Dokumente mit JSON Schema zu strukturieren. Auf dem Weg dorthin erstellst du ein JSON-Schema und entwirfst eine API mit ihm.
-
Kapitel 6, JSON-Suche, zeigt, wie man JSON-Dokumente mit
jq
und JSONPath durchsucht. -
Kapitel 7, JSON Transform, enthält die Werkzeuge, die du brauchst, um ein schlecht gestaltetes JSON-Dokument in ein besser gestaltetes/brauchbareres JSON-Dokument umzuwandeln. Außerdem wird gezeigt, wie du zwischen JSON und anderen Formaten wie XML und HTML konvertieren kannst.
Teil III, JSON im Unternehmen
-
Kapitel 8, JSON und Hypermedia, befasst sich mit der Verwendung von JSON mit verschiedenen bekannten Hypermedia-Formaten (z. B. HAL und
jsonapi
). -
Kapitel 9, JSON und MongoDB, zeigt, wie du MongoDB für die Speicherung und den Zugriff auf JSON-Dokumente nutzen kannst.
-
Kapitel 10, JSON Messaging mit Kafka, beschreibt, wie du Apache Kafka nutzt, um JSON-basierte Nachrichten zwischen Diensten auszutauschen.
Anhänge
-
Anhang A, Installationsanleitungen, zeigt dir, wie du die Anwendungen installierst, die du zum Ausführen der Codebeispiele in diesem Buch brauchst.
-
Anhang B, JSON Community, enthält weitere Informationen und Links, die dich mit der JSON-Community verbinden (z. B. Standards und Tutorials) und dir helfen, JSON weiterzuentwickeln.
Code Beispiele
Alle Codebeispiele für dieses Buch sind im GitHub-Repository für JSON at Work-Beispiele frei verfügbar.
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Wenn du eine CD-ROM mit Beispielen aus den O'Reilly-Büchern verkaufst oder verteilst, ist eine Genehmigung erforderlich. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Erlaubnis erforderlich.
Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "JSON at Work von Tom Marrs (O'Reilly). Copyright 2017 Vertical Slice, Inc. 978-1-449-35832-7."
Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
O'Reilly Safari
Hinweis
Safari (ehemals Safari Books Online) ist eine mitgliedschaftsbasierte Schulungs- und Nachschlageplattform für Unternehmen, Behörden, Lehrkräfte und Einzelpersonen.
Mitglieder haben Zugang zu Tausenden von Büchern, Schulungsvideos, Lernpfaden, interaktiven Tutorials und kuratierten Playlists von über 250 Verlagen, darunter O'Reilly Media, Harvard Business Review, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Adobe, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett und Course Technology, um nur einige zu nennen.
Weitere Informationen erhältst du unter http://oreilly.com/safari.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter http://bit.ly/json-at-work aufrufen .
Wenn du Kommentare oder technische Fragen zu diesem Buch stellen möchtest, sende eine E-Mail an bookquestions@oreilly.com.
Weitere Informationen zu unseren Büchern, Kursen, Konferenzen und Neuigkeiten findest du auf unserer Website unter http://www.oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://www.youtube.com/oreillymedia
Danksagungen
Zuallererst möchte ich Douglas Crockford dafür danken, dass er das JSON-Datenformat entwickelt und standardisiert hat. JSON ist die Datensprache von REST und Microservices, und die gesamte Community ist seiner Vision und seinen Bemühungen zu Dank verpflichtet.
Ich danke meiner O'Reilly-Redakteurin Megan Foley und meinem früheren Redakteur Simon St. Laurent dafür, dass sie an dieses Buch geglaubt und das Projekt mit viel Geduld begleitet haben. Danke, dass sie zu mir gehalten haben und mir während des gesamten Projekts geholfen haben. Ich möchte auch meinem O'Reilly-Lektoratsteam, Nick Adams und Sharon Wilkey, danken, die durch ihre sorgfältige Arbeit die Qualität dieses Manuskripts verbessert haben.
Vielen Dank an Matthew McCullough und Rachel Roumeliotis von der O'Reilly Open Source Convention (OSCON), Jay Zimmerman von No Fluff Just Stuff (NFJS) und Dilip Thomas vom Great Indian Developer Summit (GIDS), die mir die Chance gegeben haben, auf ihren Konferenzen über JSON und REST zu sprechen. Es macht immer Spaß, auf Konferenzen zu sprechen, und ich hoffe, dass ich das auch in Zukunft tun kann.
Ich danke meinen Fachkritikern, die mir wertvolles Feedback zu diesem Buch gegeben haben: Joe McIntyre, David Bock, Greg Ostravich und Zettie Chinfong. Außerdem möchte ich mich bei den folgenden Personen bedanken, die mir geholfen haben, meine Ideen über JSON zu formulieren und zu gestalten: Matthew McCullough, Scott Davis, Cristian Vyhmeister, Senthil Kumar, Sean Pettersen, John Gray, Doug Clark, Will Daniels, Dan Carda und Peter Piper.
Die technische Gemeinschaft in Colorado Front Range ist Weltklasse und es hat mir Spaß gemacht, bei den folgenden Benutzergruppen Vorträge zu halten, um mein Material zu verfeinern:
-
HTML5 Denver
-
Denver Open Source User Group (DOSUG)
-
Colorado Springs Open Source User Group (CS OSUG)
-
Denver Java User Group (DJUG)
-
Boulder Java User Group (BJUG)
-
BoulderJS Meetup
Danke an meine Freunde in der Toastmasters-Gemeinschaft, die mich ermutigt, an mich geglaubt und mich dazu gedrängt haben, das Buch zu beenden: Darryle Brown, Deborah Frauenfelder, Elinora Reynolds, Betty Funderburke, Tom Hobbs, Marcy Brock und vielen, vielen anderen. Ihr habt mich dazu inspiriert, klar zu kommunizieren, "aufzusteigen" und "weiter zu reisen".
Es gibt eine großartige JSON-Community im Internet. Ein großer Teil dieses Buches basiert auf der großartigen Arbeit, die du geleistet hast und weiterhin leistest. Du hast mich dazu inspiriert, deine Geschichte zu erzählen und die Punkte zu verbinden.
An meine verstorbenen Eltern, Al und Dorene Marrs, die mich geliebt und immer an mich geglaubt und mich unterstützt haben - ich weiß, dass ihr an einem besseren Ort seid. Ihr habt mich dazu inspiriert, anpassungsfähig zu sein, innovativ zu sein und hart zu arbeiten. Ihr habt mich immer ermutigt, mein Bestes zu geben. Ich danke dir für alles, was du für mich getan hast.
Und schließlich an meine wunderschöne Frau Linda und meine Tochter Abby - ich liebe euch. Danke für eure Geduld mit mir, während ich meine Abende und Wochenenden mit dem Manuskript und dem Code verbracht habe.
Get JSON bei der Arbeit now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.