{"id":1026,"date":"2015-11-16T13:57:22","date_gmt":"2015-11-16T13:57:22","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?p=1026"},"modified":"2020-07-23T14:23:44","modified_gmt":"2020-07-23T14:23:44","slug":"so-geht-rest","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/","title":{"rendered":"So geht REST \u2013 W-JAX 2015"},"content":{"rendered":"\n<p>In der ersten Novemberwoche fand in M\u00fcnchen die <a rel=\"noreferrer noopener\" href=\"https:\/\/jax.de\/wjax2015\" target=\"_blank\">W-JAX<\/a> statt und die Saxonia Systems AG (seit 03\/2020 ZEISS Digital Innovation) war als Gold Partner mit einem Stand und drei Speakern dabei. Die Themen reichten in diesem Jahr vom klassischen Java Enterprise \u00fcber Microservice Architekturen, REST, Reactive Programming, DevOps und Continuous Delivery zu Testing und Security.<\/p>\n\n\n\n<p>F\u00fcr die Saxonia Systems AG sprachen Alexander Casall, Manuel Mauky und Kay Grebenstein zu verschiedenen Themen rund um JavaFX. Schade war, dass der Vortrag von Alexander und Manuel am Mittwoch parallel zum Vortrag von Kay angesetzt war, so teilte sich die JavaFX interessierte Zuh\u00f6rerschaft auf beide Vortr\u00e4ge auf.<\/p>\n\n\n\n<p>Ein Thema, welches in diversen Vortr\u00e4gen im Vordergrund stand, waren RESTful Webservices. Da ich in den letzten Jahren in Projekten immer \u00f6fter auf diese Thematik gesto\u00dfen bin, habe ich ein paar dieser Vortr\u00e4ge besucht, um Wissen zu erweitern, zu vertiefen oder auch einfach nur abzugleichen, wie gut oder schlecht man vielleicht selbst in der Vergangenheit an dieses Thema gegangen ist.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">REST \u2013 ein \u00dcberblick<\/h3>\n\n\n\n<p>Einen \u00dcberblick \u00fcber das Thema lieferte Silvia Schreier (innoQ) mit ihrem Vortrag \u201eREST 2015\u201c. REST \u2013 der <strong>RE<\/strong>presentational <strong>S<\/strong>tate <strong>T<\/strong>ransfer \u2013 ist prinzipiell nichts Neues, wurden die Grundlagen daf\u00fcr schon Mitte der 90er Jahre von Roy Fielding definiert. Doch erst in den letzten Jahren sind RESTful Webservices verst\u00e4rkt im Kommen. Hierbei werden die Ressourcen des Dienstes \u2013 beispielsweise B\u00fccher und Autoren bei einem B\u00fccherservice \u2013 per eindeutiger URI zugreifbar gemacht. Zum Beispiel w\u00fcrde GET \/books\/123 eine Repr\u00e4sentation eines speziellen Buches liefern, GET \/books eine Liste aller B\u00fccher.<\/p>\n\n\n\n<p>Operationen auf diesen Ressourcen werden mit HTTP Verben abgebildet. Anstelle einer speziellen URI zum \u00c4ndern eines Datensatzes wie \/authors\/456\/update, wird die Ressource ver\u00e4ndert, indem beispielsweise ein PUT oder PATCH Request auf sie ausgef\u00fchrt wird. Ebenso dient DELETE zum L\u00f6schen und POST zum Erzeugen neuer Ressourcen. F\u00fcr die Antwort bietet HTTP dem REST Service eine einfache M\u00f6glichkeit, den Aufrufer \u00fcber den Status der Anfrage zu informieren. Die 200er Status Codes bedeuten eine erfolgreiche Anfrage, 300er Weiterleitungen, 400er Fehler des Clients und 500er Fehler auf Server Seite. Zus\u00e4tzlich dazu gibt es eine Vielzahl standardisierter Header, welche Client und Server nutzen k\u00f6nnen und sollten, um beispielsweise den Typ des Inhalts auszuhandeln, Informationen \u00fcber Autorisierung und Caching anzugeben und vieles mehr.<\/p>\n\n\n\n<p>Ein wesentliches Architekturprinzip f\u00fcr gute RESTful Webservices ist <a href=\"https:\/\/de.wikipedia.org\/wiki\/Representational_State_Transfer#HATEOAS\">HATEOAS<\/a> \u2013 Hypermedia as the Engine of Application State. Hier erfolgt die Navigation des Clients ausschlie\u00dflich \u00fcber URLs, die entweder in den Ressourcen oder den Header-Informationen vom Server bereitgestellt werden. Hierdurch wird eine lose Kopplung erreicht, was es dem Schnittstellenanbieter erleichtert, \u00c4nderungen an dieser zu machen.<\/p>\n\n\n\n<p>Neben diesen grunds\u00e4tzlichen Informationen wurden noch eine Reihe von Best Practices zu weiteren Themen rund um RESTful Webservices gegeben. Beispielsweise lassen sich alle Mechanismen gleicherma\u00dfen nutzen, um auch die Dokumentation der eigenen Schnittstelle als spezielle Ressourcen verf\u00fcgbar zu machen. Der \u00dcberblick wurde abgerundet durch das Thema Sicherheit. Hier gibt es viele M\u00f6glichkeiten der Authentifizierung und Autorisierung wie Basic Auth, Cookie basierte Mechanismen, OAuth 1 und 2, OpenID Connect und weitere Verfahren. Welches sich in der jeweiligen Anwendung eignet oder genutzt werden sollte, kommt auf den Anwendungsfall und die Art der Clients an.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Spring Data REST<\/h3>\n\n\n\n<p>Nach der Theorie stellt sich die Frage, wie sich nun REST-konforme Schnittstellen mit Java entwickeln lassen. Da in meinen bisherigen Projekten immer Implementierungen des JAX-RS Standards zum Einsatz kamen, war es interessant sich den Ansatz von Spring anzuschauen. Den hierzu passenden Vortrag \u201eSpring Data REST \u2013 Repositories meet Hypermedia\u201c gab es von Oliver Gierke (Pivotal Software, Inc.). Out of the Box generiert <a href=\"http:\/\/projects.spring.io\/spring-data-rest\/\">Spring Data REST<\/a> HATEOAS-konforme Ressource-Repr\u00e4sentationen im HAL-Format aus den Dom\u00e4nenobjekten. Das <a href=\"http:\/\/stateless.co\/hal_specification.html\">HAL<\/a> \u2013 Hypertext Application Language \u2013 Format definiert die Art und Weise wie Hyperlinks in Ressourcen dargestellt werden. Bei einer HAL-konformen Schnittstelle kann der Client allein durch die gegebenen Links und deren Relationen durch die komplette Schnittstelle navigieren. Spring k\u00fcmmert sich automatisch, um die \u00dcbersetzung des Dom\u00e4nenmodells, indem beispielsweise aggregierte Objekte direkt als Sub-Ressourcen, Relationen zwischen Objekten als Links oder IDs als URIs abgebildet werden. Spring Data REST bietet bereits vieles, was \u2013 zumindest bis jetzt \u2013 bei JAX-RS noch h\u00e4ndisch gemacht werden muss. Je nachdem, worauf der Fokus im Projekt gelegt wird, kann sich der Umstieg auf das Spring \u00d6kosystem durchaus lohnen.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Dokumentation von REST Schnittstellen<\/h3>\n\n\n\n<p>Ein Thema welches gern mal ignoriert oder zumindest stiefm\u00fctterlich behandelt wird, ist die Dokumentation. Doch gerade bei Schnittstellen ist diese oft unverzichtbar f\u00fcr die Anwender der Schnittstelle bzw. die Entwickler, welche diese Schnittstelle nutzen sollen. Welche M\u00f6glichkeiten es gibt, sich mit Hilfe von Open Source Werkzeugen Dokumentationen von REST Schnittstellen generieren zu lassen, war Thema in Martin Walters (Deutsche Welle) Vortrag \u201eREST-Architekturen erstellen und dokumentieren\u201c. Hierbei gibt es verschiedene Ans\u00e4tze, wie <a href=\"https:\/\/apiary.io\/\">apiary.io<\/a> zum Schreiben von Dokumentationen in einer Wiki-Syntax oder Javadoc basierten L\u00f6sungen wie <a href=\"http:\/\/scottfrederick.github.io\/springdoclet\/\">SpringDoclet<\/a> und <a href=\"http:\/\/apidocjs.com\/\">apidoc.js<\/a>, bei denen spezielle Kommentare im Quellcode genutzt werden f\u00fcr die automatische Generierung von Dokumentationen. Das umfangreichste Werkzeug bzw. Sammlung von Werkzeugen bietet <a href=\"http:\/\/swagger.io\/\">Swagger<\/a>. Dokumentationen k\u00f6nnen hier mittels Annotationen aus dem Code heraus erzeugt, mit JSON oder YAML geschrieben oder mit Hilfe von Editoren erzeugt werden. Aus der JSON Definition k\u00f6nnen wiederum Client- und Serverendpunkte in verschiedensten Sprachen generiert werden. Des Weiteren bietet Swagger ein UI zur Darstellung der Schnittstelle mit der M\u00f6glichkeit, diese direkt auszutesten.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fazit<\/h3>\n\n\n\n<p>F\u00fcr mich war es die erste W-JAX Teilnahme und ich wurde nicht entt\u00e4uscht. Es gab viele Themen und wirklich gute Vortr\u00e4ge. Neben den bereits im Detail erw\u00e4hnten Vortr\u00e4gen rund um REST m\u00f6chte ich hier auf jeden Fall noch Axel Fontaine (Boxfuse GmbH) mit seinem Vortrag \u201eImmutable Infrastructure auf AWS\u201c und Steffen M\u00fcller (Incloud GmbH) mit \u201eCross-Plattform-App-Entwicklung\u201c nennen. Beide Vortr\u00e4ge waren sowohl inhaltlich als auch vom Stil her sehr interessant und erfrischend. Was ich pers\u00f6nlich ein wenig schade fand, war die gro\u00dfe Anzahl von jeweils 10 parallelen Vortr\u00e4gen. So blieb vieles auf der Strecke, da es oft zwei oder drei parallele Themen gab, die ich gern besucht h\u00e4tte. Trotz allem komme ich gern wieder!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In der ersten Novemberwoche fand in M\u00fcnchen die W-JAX statt und die Saxonia Systems AG (seit 03\/2020 ZEISS Digital Innovation) war als Gold Partner mit einem Stand und drei Speakern dabei. Die Themen reichten in diesem Jahr vom klassischen Java Enterprise \u00fcber Microservice Architekturen, REST, Reactive Programming, DevOps und Continuous Delivery zu Testing und Security.<\/p>\n","protected":false},"author":27,"featured_media":1235,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[15],"tags":[435,436,437,62,172,179,210,218,348,417,434],"topics":[334],"class_list":["post-1026","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-reactive-programming","tag-continuous-delivery","tag-testing","tag-security","tag-javafx","tag-rest","tag-devops","tag-java","tag-konferenz","tag-w-jax","tag-microservice-architekturen","topics-rueckblick-auf-fruehere-veranstaltungen"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>So geht REST \u2013 W-JAX 2015 - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"Im Zentrum der W-JAX 2015 standen Themen wie Java Enterprise, Microservice Architekturen, REST, Continuous Delivery zu Testing und Security uvm.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"So geht REST \u2013 W-JAX 2015 - ZEISS Digital Innovation Blog\" \/>\n<meta property=\"og:description\" content=\"Im Zentrum der W-JAX 2015 standen Themen wie Java Enterprise, Microservice Architekturen, REST, Continuous Delivery zu Testing und Security uvm.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-16T13:57:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-23T14:23:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2015\/11\/201511_REST.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1184\" \/>\n\t<meta property=\"og:image:height\" content=\"665\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Andreas Post\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:site\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andreas Post\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/\",\"name\":\"So geht REST \u2013 W-JAX 2015 - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2015\/11\/201511_REST.png\",\"datePublished\":\"2015-11-16T13:57:22+00:00\",\"dateModified\":\"2020-07-23T14:23:44+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/48c8e0de288ca862ede539399e7b77d6\"},\"description\":\"Im Zentrum der W-JAX 2015 standen Themen wie Java Enterprise, Microservice Architekturen, REST, Continuous Delivery zu Testing und Security uvm.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2015\/11\/201511_REST.png\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2015\/11\/201511_REST.png\",\"width\":1184,\"height\":665},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"So geht REST \u2013 W-JAX 2015\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/48c8e0de288ca862ede539399e7b77d6\",\"name\":\"Andreas Post\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/post_andreas-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/post_andreas-150x150.jpg\",\"caption\":\"Andreas Post\"},\"description\":\"Andreas Post ist seit 2007 als Software-Entwickler und Teamlead bei der ZEISS Digital Innovation besch\u00e4ftigt. Sein Schwerpunkt liegt im Java \/ Java EE Umfeld mit dem fachlichen Fokus auf Entwicklungen in den Bereichen Energiewirtschaft und Mobility Solutions.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/andreaspost\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"So geht REST \u2013 W-JAX 2015 - ZEISS Digital Innovation Blog","description":"Im Zentrum der W-JAX 2015 standen Themen wie Java Enterprise, Microservice Architekturen, REST, Continuous Delivery zu Testing und Security uvm.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/","og_locale":"de_DE","og_type":"article","og_title":"So geht REST \u2013 W-JAX 2015 - ZEISS Digital Innovation Blog","og_description":"Im Zentrum der W-JAX 2015 standen Themen wie Java Enterprise, Microservice Architekturen, REST, Continuous Delivery zu Testing und Security uvm.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/","og_site_name":"Digital Innovation Blog","article_publisher":"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/","article_published_time":"2015-11-16T13:57:22+00:00","article_modified_time":"2020-07-23T14:23:44+00:00","og_image":[{"width":1184,"height":665,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2015\/11\/201511_REST.png","type":"image\/png"}],"author":"Andreas Post","twitter_card":"summary_large_image","twitter_creator":"@ZEISS_di","twitter_site":"@ZEISS_di","twitter_misc":{"Verfasst von":"Andreas Post","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/","name":"So geht REST \u2013 W-JAX 2015 - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2015\/11\/201511_REST.png","datePublished":"2015-11-16T13:57:22+00:00","dateModified":"2020-07-23T14:23:44+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/48c8e0de288ca862ede539399e7b77d6"},"description":"Im Zentrum der W-JAX 2015 standen Themen wie Java Enterprise, Microservice Architekturen, REST, Continuous Delivery zu Testing und Security uvm.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2015\/11\/201511_REST.png","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2015\/11\/201511_REST.png","width":1184,"height":665},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/so-geht-rest\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/"},{"@type":"ListItem","position":2,"name":"So geht REST \u2013 W-JAX 2015"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/48c8e0de288ca862ede539399e7b77d6","name":"Andreas Post","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/post_andreas-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/05\/post_andreas-150x150.jpg","caption":"Andreas Post"},"description":"Andreas Post ist seit 2007 als Software-Entwickler und Teamlead bei der ZEISS Digital Innovation besch\u00e4ftigt. Sein Schwerpunkt liegt im Java \/ Java EE Umfeld mit dem fachlichen Fokus auf Entwicklungen in den Bereichen Energiewirtschaft und Mobility Solutions.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/andreaspost\/"}]}},"author_meta":{"display_name":"Andreas Post","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/andreaspost\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2015\/11\/201511_REST-600x337.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">Java<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Java<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">Reactive Programming<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">Continuous Delivery<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">Testing<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">Security<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">JavaFX<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">REST<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">DevOps<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">Java<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">Konferenz<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">W-Jax<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/java\/\" class=\"advgb-post-tax-term\">Microservice Architekturen<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Reactive Programming<\/span>","<span class=\"advgb-post-tax-term\">Continuous Delivery<\/span>","<span class=\"advgb-post-tax-term\">Testing<\/span>","<span class=\"advgb-post-tax-term\">Security<\/span>","<span class=\"advgb-post-tax-term\">JavaFX<\/span>","<span class=\"advgb-post-tax-term\">REST<\/span>","<span class=\"advgb-post-tax-term\">DevOps<\/span>","<span class=\"advgb-post-tax-term\">Java<\/span>","<span class=\"advgb-post-tax-term\">Konferenz<\/span>","<span class=\"advgb-post-tax-term\">W-Jax<\/span>","<span class=\"advgb-post-tax-term\">Microservice Architekturen<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 10\u00a0Jahren ago","modified":"Updated 6\u00a0Jahren ago"},"absolute_dates":{"created":"Posted on November 16, 2015","modified":"Updated on Juli 23, 2020"},"absolute_dates_time":{"created":"Posted on November 16, 2015 1:57 p.m.","modified":"Updated on Juli 23, 2020 2:23 p.m."},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/1026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/comments?post=1026"}],"version-history":[{"count":3,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/1026\/revisions"}],"predecessor-version":[{"id":1449,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/1026\/revisions\/1449"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media\/1235"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media?parent=1026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/categories?post=1026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/tags?post=1026"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/topics?post=1026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}