{"id":4179,"date":"2017-03-01T21:36:26","date_gmt":"2017-03-01T21:36:26","guid":{"rendered":"https:\/\/blog.fabianpiau.com\/?p=4179"},"modified":"2020-08-18T18:30:53","modified_gmt":"2020-08-18T17:30:53","slug":"swagger-automated-api-documentation","status":"publish","type":"post","link":"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/","title":{"rendered":"Swagger, the automated API documentation"},"content":{"rendered":"<p><a class=\"lang\" href=\"https:\/\/blog.fabianpiau.com\/fr\/2017\/03\/01\/swagger-automated-api-documentation\/\" title=\"Lire en fran\u00e7ais\"><strong class=\"labellang\"><span class=\"fr\">&nbsp;<\/span>Version fran\u00e7aise disponible<\/strong><\/a><\/p>\n<p>IT projects nowadays are mostly based on<a href=\"https:\/\/blog.fabianpiau.com\/en\/2016\/10\/03\/microservices-architecture-best-practices\/\" title=\"Microservices architecture \u2013 Best practices\"> a microservice oriented architecture<\/a>, it is not surprising that the different microservices are developed and maintained by different teams.<\/p>\n<p>Each service provides an API (private or public) that allows the communication with the outside world while guaranteeing its data integrity. Multiple nested calls between microservices make it possible to do more complex processing. It is very important to have an up-to-date documentation for each of your APIs. Who has never heard a developer say to another &#8220;This doc has not been updated for months, look at the code directly!&#8221;.<\/p>\n<p class=\"left\" style=\"padding-right:15px;\"><a href=\"https:\/\/swagger.io\/tools\/swagger-ui\/\" target=\"_blank\" title=\"Logo Swagger\" rel=\"noopener noreferrer\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" title=\"Logo Swagger\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00087\/swagger-logo.png?resize=200%2C200&#038;ssl=1\" alt=\"Logo Swagger\" width=\"200\" height=\"200\" \/><\/a><\/p>\n<p><a href=\"https:\/\/swagger.io\/tools\/swagger-ui\/\" target=\"_blank\" title=\"Swagger UI official website\" rel=\"noopener noreferrer\">Swagger UI<\/a> complies with this assertion. Simply annotate your code and the framework will semi-automatically generate all your API documentation. I use &#8216;semi-automatic&#8217; because Swagger cannot guess the business side of your documentation, so you have to write it yourself in a similar way that you are writing Javadoc.<\/p>\n<p>The documentation generated by Swagger is updated at the same time as the code is. For instance, if you add a new parameter to a method that is exposed, it will be automatically taken into account and documented with the appropriate annotations. The documentation is much more than a static HTML file, it allows to act as an HTTP client (there is no need to have <a href=\"https:\/\/www.postman.com\/\" target=\"_blank\" title=\"Postman official website\" rel=\"noopener noreferrer\">Postman<\/a> installed for example) to test the various methods exposed by the API.<\/p>\n<p>You can take a look at the <a href=\"https:\/\/petstore.swagger.io\/\" target=\"_blank\" title=\"Swagger sample application (Petstore)\" rel=\"noopener noreferrer\">official sample application (Petstore)<\/a> and see by yourself the various supported features, for example OAuth2.0 authentication is supported.<\/p>\n<div style=\"max-width: 560px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00087\/swagger-pet-store.png?ssl=1\" rel=\"shadowbox[sbpost-4179];player=img;\" title=\"Example with Swagger (Petstore)\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/post\/00087\/swagger-pet-store-thumbnail.png?resize=550%2C507&#038;ssl=1\" alt=\"Example with Swagger (Petstore)\" title=\"Example with Swagger (Petstore)\" width=\"550\" height=\"507\" class=\"size-medium wp-image-257\" \/><\/a><p class=\"wp-caption-text\">Example with Swagger (Petstore)<\/p><\/div>\n<p>If you use Spring MVC in your application, the <a href=\"http:\/\/springfox.github.io\/springfox\/\" target=\"_blank\" title=\"SpringFox project official website\" rel=\"noopener noreferrer\">SpringFox project<\/a> (Swagger wrapper) makes Swagger integration very simple. In less than an hour, you should be able to generate your API documentation. Then you can add optional annotations to make it even more complete.<\/p>\n<p>By adopting Swagger on all your microservices, it is a good bet that the communication between your different teams will improve. You will have a unique entry point and you can forget that dusty wiki page that was updated once in a while&#8230; Wishing you good documentation!<br \/>\n<\/p>","protected":false},"excerpt":{"rendered":"<p>&nbsp;Version fran\u00e7aise disponible IT projects nowadays are mostly based on a microservice oriented architecture, it is not surprising that the different microservices are developed and maintained by different teams. Each service provides an API (private or public) that allows the communication with the outside world while guaranteeing its data integrity. Multiple nested calls between microservices [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4181,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[39,280,87,129],"class_list":["post-4179","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agile-programming","tag-best-practices","tag-microservices","tag-tool","tag-spring"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Swagger, the automated API documentation | CarmaBlog<\/title>\n<meta name=\"description\" content=\"&nbsp;English version available A l&#039;heure o\u00f9 les projets informatiques se basent la plupart du temps sur une architecture orient\u00e9e microservices, il n&#039;est\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Swagger, the automated API documentation | CarmaBlog\" \/>\n<meta property=\"og:description\" content=\"&nbsp;English version available A l&#039;heure o\u00f9 les projets informatiques se basent la plupart du temps sur une architecture orient\u00e9e microservices, il n&#039;est\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/\" \/>\n<meta property=\"og:site_name\" content=\"CarmaBlog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/fabian.piau\" \/>\n<meta property=\"article:published_time\" content=\"2017-03-01T21:36:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-08-18T17:30:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i1.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?fit=250%2C250&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"250\" \/>\n\t<meta property=\"og:image:height\" content=\"250\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fabian Piau\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:site\" content=\"@fabianpiau\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fabian Piau\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/\"},\"author\":{\"name\":\"Fabian Piau\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"headline\":\"Swagger, the automated API documentation\",\"datePublished\":\"2017-03-01T21:36:26+00:00\",\"dateModified\":\"2020-08-18T17:30:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/\"},\"wordCount\":803,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/swagger.png?fit=250%2C250&ssl=1\",\"keywords\":[\"best practices\",\"microservices\",\"tool\",\"spring\"],\"articleSection\":[\"Agile programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/\",\"name\":\"Swagger, the automated API documentation | CarmaBlog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/fr\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/swagger.png?fit=250%2C250&ssl=1\",\"datePublished\":\"2017-03-01T21:36:26+00:00\",\"dateModified\":\"2020-08-18T17:30:53+00:00\",\"description\":\"&nbsp;English version available A l'heure o\u00f9 les projets informatiques se basent la plupart du temps sur une architecture orient\u00e9e microservices, il n'est\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[[\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/\"]]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/swagger.png?fit=250%2C250&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2017\\\/03\\\/swagger.png?fit=250%2C250&ssl=1\",\"width\":250,\"height\":250,\"caption\":\"swagger\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/2017\\\/03\\\/01\\\/swagger-automated-api-documentation\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programmation agile\",\"item\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/category\\\/agile-programming\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Swagger, la documentation API automatis\u00e9e\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/\",\"name\":\"CarmaBlog\",\"description\":\"Agility, Java programming, New technologies and more...\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/blog.fabianpiau.com\\\/en\\\/#\\\/schema\\\/person\\\/c5cbffd7cf0b10117877f5dfd1b35f14\",\"name\":\"Fabian Piau\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\",\"width\":567,\"height\":667,\"caption\":\"Fabian Piau\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/blog.fabianpiau.com\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/fabian-pro-small.jpg?fit=567%2C667&ssl=1\"},\"description\":\"Java developer, Fabian is interested in new technologies and their use within an Agile environment.\",\"sameAs\":[\"https:\\\/\\\/blog.fabianpiau.com\",\"https:\\\/\\\/www.facebook.com\\\/fabian.piau\",\"https:\\\/\\\/www.instagram.com\\\/fabianpiau\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fabianpiau\\\/\",\"https:\\\/\\\/x.com\\\/fabianpiau\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Swagger, the automated API documentation | CarmaBlog","description":"&nbsp;English version available A l'heure o\u00f9 les projets informatiques se basent la plupart du temps sur une architecture orient\u00e9e microservices, il n'est","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:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/","og_locale":"en_US","og_type":"article","og_title":"Swagger, the automated API documentation | CarmaBlog","og_description":"&nbsp;English version available A l'heure o\u00f9 les projets informatiques se basent la plupart du temps sur une architecture orient\u00e9e microservices, il n'est","og_url":"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/","og_site_name":"CarmaBlog","article_publisher":"https:\/\/www.facebook.com\/fabian.piau","article_author":"https:\/\/www.facebook.com\/fabian.piau","article_published_time":"2017-03-01T21:36:26+00:00","article_modified_time":"2020-08-18T17:30:53+00:00","og_image":[{"width":250,"height":250,"url":"https:\/\/i1.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?fit=250%2C250&ssl=1","type":"image\/png"}],"author":"Fabian Piau","twitter_card":"summary_large_image","twitter_creator":"@fabianpiau","twitter_site":"@fabianpiau","twitter_misc":{"Written by":"Fabian Piau","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.fabianpiau.com\/fr\/2017\/03\/01\/swagger-automated-api-documentation\/#article","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2017\/03\/01\/swagger-automated-api-documentation\/"},"author":{"name":"Fabian Piau","@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"headline":"Swagger, the automated API documentation","datePublished":"2017-03-01T21:36:26+00:00","dateModified":"2020-08-18T17:30:53+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2017\/03\/01\/swagger-automated-api-documentation\/"},"wordCount":803,"commentCount":2,"publisher":{"@id":"https:\/\/blog.fabianpiau.com\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2017\/03\/01\/swagger-automated-api-documentation\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?fit=250%2C250&ssl=1","keywords":["best practices","microservices","tool","spring"],"articleSection":["Agile programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blog.fabianpiau.com\/fr\/2017\/03\/01\/swagger-automated-api-documentation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/","url":"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/","name":"Swagger, the automated API documentation | CarmaBlog","isPartOf":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/#primaryimage"},"image":{"@id":"https:\/\/blog.fabianpiau.com\/fr\/2017\/03\/01\/swagger-automated-api-documentation\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?fit=250%2C250&ssl=1","datePublished":"2017-03-01T21:36:26+00:00","dateModified":"2020-08-18T17:30:53+00:00","description":"&nbsp;English version available A l'heure o\u00f9 les projets informatiques se basent la plupart du temps sur une architecture orient\u00e9e microservices, il n'est","breadcrumb":{"@id":"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":[["https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/"]]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/#primaryimage","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?fit=250%2C250&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?fit=250%2C250&ssl=1","width":250,"height":250,"caption":"swagger"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.fabianpiau.com\/en\/2017\/03\/01\/swagger-automated-api-documentation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/blog.fabianpiau.com\/en\/"},{"@type":"ListItem","position":2,"name":"Programmation agile","item":"https:\/\/blog.fabianpiau.com\/en\/category\/agile-programming\/"},{"@type":"ListItem","position":3,"name":"Swagger, la documentation API automatis\u00e9e"}]},{"@type":"WebSite","@id":"https:\/\/blog.fabianpiau.com\/en\/#website","url":"https:\/\/blog.fabianpiau.com\/en\/","name":"CarmaBlog","description":"Agility, Java programming, New technologies and more...","publisher":{"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.fabianpiau.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.fabianpiau.com\/en\/#\/schema\/person\/c5cbffd7cf0b10117877f5dfd1b35f14","name":"Fabian Piau","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1","width":567,"height":667,"caption":"Fabian Piau"},"logo":{"@id":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2022\/08\/fabian-pro-small.jpg?fit=567%2C667&ssl=1"},"description":"Java developer, Fabian is interested in new technologies and their use within an Agile environment.","sameAs":["https:\/\/blog.fabianpiau.com","https:\/\/www.facebook.com\/fabian.piau","https:\/\/www.instagram.com\/fabianpiau\/","https:\/\/www.linkedin.com\/in\/fabianpiau\/","https:\/\/x.com\/fabianpiau"]}]}},"views":4505,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blog.fabianpiau.com\/wp-content\/uploads\/2017\/03\/swagger.png?fit=250%2C250&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pbSHyl-15p","_links":{"self":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts\/4179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/comments?post=4179"}],"version-history":[{"count":0,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/posts\/4179\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media\/4181"}],"wp:attachment":[{"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/media?parent=4179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/categories?post=4179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.fabianpiau.com\/en\/wp-json\/wp\/v2\/tags?post=4179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}