{"id":882,"date":"2021-03-22T20:36:25","date_gmt":"2021-03-22T19:36:25","guid":{"rendered":"https:\/\/louis.hatier.me\/blog\/?p=882"},"modified":"2021-03-22T20:36:26","modified_gmt":"2021-03-22T19:36:26","slug":"gravitee-une-solution-api-management","status":"publish","type":"post","link":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/","title":{"rendered":"Gravitee : une solution d&rsquo;API Management"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large is-resized\"><a href=\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png\" data-rel=\"lightbox-gallery-7zKLFltS\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png\" alt=\"Logo Gravitee\" class=\"wp-image-883\" width=\"159\" height=\"156\" srcset=\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png 984w, https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee-300x294.png 300w, https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee-768x753.png 768w\" sizes=\"auto, (max-width: 159px) 100vw, 159px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Gravitee est une solution d\u2019<strong>API Management<\/strong>, aussi appel\u00e9e API Plateform, ou API Gateway (mais c\u2019est r\u00e9ducteur).<\/p>\n\n\n\n<p>Cet outil open-source d\u00e9velopp\u00e9 par une soci\u00e9t\u00e9 lilloise, est un concurrent d\u2019outils du m\u00eame type comme : Kong, Apigee, WSO2, Tyk.<\/p>\n\n\n\n<p>Il est compos\u00e9 de plusieurs briques ind\u00e9pendantes qui couvrent la plupart des besoins de ce type d\u2019architecture.<\/p>\n\n\n\n<p>Le principal int\u00e9r\u00eat est l&rsquo;utilisation de l&rsquo;API Gateway qui devient le point unique d&rsquo;acc\u00e8s aux API et va donc centraliser tous les appels. Il peut \u00eatre coupler \u00e0 un Access Management qui sera responsable de la gestion de l&rsquo;authentification et des autorisations.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/gravitee-auth-api.png\" data-rel=\"lightbox-gallery-7zKLFltS\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"592\" src=\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/gravitee-auth-api.png\" alt=\"\" class=\"wp-image-888\" srcset=\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/gravitee-auth-api.png 602w, https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/gravitee-auth-api-300x295.png 300w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/a><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">API Management<\/h2>\n\n\n\n<p>Ce composant est divis\u00e9 en 3 parties :<\/p>\n\n\n\n<p><strong>Gateway<\/strong><\/p>\n\n\n\n<p>C&rsquo;est la partie la plus importante, celle qui est responsable des requ\u00eates HTTP entrantes et sortantes.<br>La gateway encaisse donc tous les appels aux API et elle peut y apporter des transformations (rate limiting, authorization via JWT, cache, SOAP to REST, logging etc.).<br>C&rsquo;est elle qui passe ensuite la requ\u00eate aux API Backend (API de stock, produits, etc.), et qui renvoie la donn\u00e9e au client.<\/p>\n\n\n\n<p>Plut\u00f4t que de laisser la gateway g\u00e9rer l&rsquo;authentification, il est possible de mettre en place le composant d&rsquo;Access Management, la gateway se chargera lors d&rsquo;un appel de valider le token aupr\u00e8s de ce composant.<\/p>\n\n\n\n<p><strong>Management<\/strong><\/p>\n\n\n\n<p>C&rsquo;est via l&rsquo;API management et son interface que l&rsquo;on va pouvoir ajouter, param\u00e9trer et publier nos API.<br>Une API pourra donc disposer d&rsquo;une documentation (au format swagger ou autre), d&rsquo;une URL de health-check pour v\u00e9rifier la bonne sant\u00e9 de celle-ci, et de \u00ab\u00a0plans\u00a0\u00bb destin\u00e9s \u00e0 accorder l&rsquo;acc\u00e8s ou non.<\/p>\n\n\n\n<p><strong>Portail API<\/strong><\/p>\n\n\n\n<p>Les API publi\u00e9es sont disponibles via un \u00ab\u00a0portail des API\u00a0\u00bb, qui sera le catalogue des API disponibles (et de leur documentation).<br>Ce catalogue est customisable pour coller au mieux \u00e0 l&rsquo;identit\u00e9 graphique souhait\u00e9e.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Access Management<\/h2>\n\n\n\n<p>Ce composant peut-\u00eatre utilis\u00e9 ind\u00e9pendamment de l&rsquo;API Gateway, et dans un cadre compl\u00e8tement diff\u00e9rent.<br>Son but est de g\u00e9rer les authentifications et autorisations utilisateurs.<br>Il se base sur les protocoles OAuth2 et OpenID Connect.<\/p>\n\n\n\n<p>Coupler l&rsquo;API Gateway \u00e0 ce composant permet de proposer une authentification OAuth2.<br>Si on se r\u00e9f\u00e8re au sch\u00e9ma pr\u00e9c\u00e9dent, le client va r\u00e9cup\u00e9rer son token en s&rsquo;identifiant aupr\u00e8s de l&rsquo;AM, qui lui renverra un token.<br>Il pourra ensuite interroger l&rsquo;API Gateway en passant ce token, qui v\u00e9rifiera la validit\u00e9 du token \u00e0 l&rsquo;aide de l&rsquo;AM : le token est-il \u00e0 jour ? Cet utilisateur a-t-il souscrit au plan de l&rsquo;API demand\u00e9 ? A-t-il d\u00e9pass\u00e9 sa limite de requ\u00eate ? etc.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Architecture<\/h2>\n\n\n\n<p>Pour fonctionner, Gravitee n\u00e9cessite Elasticsearch et une BDD (MongoDB, PostgreSQL, MariaDB etc). <br>Exemple d&rsquo;architecture pour la mise en place la solution Gravitee avec l&rsquo;API Management et l&rsquo;Access Management, pour un volume de 100 requ\u00eates \/ seconde :<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>NGINX en reverse proxy HTTP<\/li><li>2 Gateway APIM (pour un minimum de redondance, mais une seule suffirait \u00e0 g\u00e9rer la charge)<\/li><li>2 Gateway AM<\/li><li>3 noeuds Elasticsearch (logs, metrics, health-check, payload)<\/li><li><a href=\"https:\/\/fr.wikipedia.org\/wiki\/Split-brain_(informatique)\" target=\"_blank\" rel=\"noreferrer noopener\">3 noeuds<\/a> PostgreSQL (param\u00e9trage des API, comptes utilisateurs)<\/li><\/ul>\n\n\n\n<p>Gravitee tourne avec Java, il faut donc pr\u00e9voir de monitorer les JVM (Centreon, Zabbix ou autre).<br>Il est \u00e9galement gourmand en index Elasticsearch et n\u00e9cessite de param\u00e9trer l&rsquo;<a href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/reference\/current\/index-lifecycle-management.html\" target=\"_blank\" rel=\"noreferrer noopener\">ILM<\/a>, via l&rsquo;interface Kibana par exemple, pour ne pas saturer l&rsquo;espace disque.<\/p>\n\n\n\n<p>La version entreprise propose un module d&rsquo;alert engine packag\u00e9 avec la solution.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mais aussi&#8230;<\/h2>\n\n\n\n<p>Au sein de l&rsquo;API Management, il est \u00e9galement possible d&rsquo;appliquer des r\u00e8gles d&rsquo;IP filtering (selon des routes sp\u00e9cifiques par exemple), de coder des morceaux de Groovy pour des besoins sp\u00e9cifiques, voire de coder ses propres plugins en Java.<br>On peut renseigner plusieurs endpoint d&rsquo;API Backend, avec une gestion de failover.<br>Les statistiques et contenu d&rsquo;appels HTTP sont consultables dans des dashboards.<\/p>\n\n\n\n<p>Pour les plus curieux vous pouvez installer la stack Docker via le docker-compose disponible sur la <a href=\"https:\/\/docs.gravitee.io\/apim\/3.x\/apim_installguide_docker_compose.html\" target=\"_blank\" rel=\"noreferrer noopener\">documentation officielle<\/a> et parcourir l&rsquo;ensemble des fonctionnalit\u00e9s :)<\/p>\n<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_counters\" href=\"https:\/\/www.hupso.com\/share\/\"><img decoding=\"async\" src=\"https:\/\/static.hupso.com\/share\/buttons\/dot.png\" style=\"border:0px; padding-top:2px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_c=new Array(\"twitter\",\"facebook_like\",\"pinterest\",\"email\",\"linkedin\");var hupso_counters_lang = \"en_US\";var hupso_image_folder_url = \"\";var hupso_url_c=\"\";var hupso_title_c=\"Gravitee%20%3A%20une%20solution%20d%27API%20Management\";<\/script><script type=\"text\/javascript\" src=\"https:\/\/static.hupso.com\/share\/js\/counters.js\"><\/script><!-- Hupso Share Buttons --><\/div>","protected":false},"excerpt":{"rendered":"<p>Gravitee est une solution d\u2019API Management, aussi appel\u00e9e API Plateform, ou API Gateway (mais c\u2019est r\u00e9ducteur). Cet outil open-source d\u00e9velopp\u00e9 par une soci\u00e9t\u00e9 lilloise, est un concurrent d\u2019outils du m\u00eame type comme : Kong, Apigee, WSO2, Tyk. Il est compos\u00e9 de plusieurs briques ind\u00e9pendantes qui couvrent la plupart des besoins de ce type d\u2019architecture. Le [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[92],"tags":[60,80,76,63,29,69,28],"class_list":["post-882","post","type-post","status-publish","format-standard","hentry","category-api","tag-docker","tag-elasticsearch","tag-monitoring","tag-open-source","tag-rest","tag-security","tag-soap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Gravitee : une solution d&#039;API Management - Melting Poutre<\/title>\n<meta name=\"description\" content=\"D\u00e9couverte de la solution d&#039;API Management Gravitee et de ses composants\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gravitee : une solution d&#039;API Management - Melting Poutre\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couverte de la solution d&#039;API Management Gravitee et de ses composants\" \/>\n<meta property=\"og:url\" content=\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/\" \/>\n<meta property=\"og:site_name\" content=\"Melting Poutre\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-22T19:36:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-22T19:36:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png\" \/>\n<meta name=\"author\" content=\"Louis Hatier\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Louis Hatier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\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:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/\"},\"author\":{\"name\":\"Louis Hatier\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\"},\"headline\":\"Gravitee : une solution d&rsquo;API Management\",\"datePublished\":\"2021-03-22T19:36:25+00:00\",\"dateModified\":\"2021-03-22T19:36:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/\"},\"wordCount\":657,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\"},\"image\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png\",\"keywords\":[\"Docker\",\"Elasticsearch\",\"Monitoring\",\"Open source\",\"REST\",\"Security\",\"SOAP\"],\"articleSection\":[\"API\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/\",\"url\":\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/\",\"name\":\"Gravitee : une solution d'API Management - Melting Poutre\",\"isPartOf\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png\",\"datePublished\":\"2021-03-22T19:36:25+00:00\",\"dateModified\":\"2021-03-22T19:36:26+00:00\",\"description\":\"D\u00e9couverte de la solution d'API Management Gravitee et de ses composants\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#primaryimage\",\"url\":\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png\",\"contentUrl\":\"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png\",\"width\":984,\"height\":965,\"caption\":\"Logo Gravitee\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/#website\",\"url\":\"https:\/\/louis.hatier.me\/blog\/\",\"name\":\"Melting Poutre\",\"description\":\"Du web et d&#039;autres choses\",\"publisher\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/louis.hatier.me\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11\",\"name\":\"Louis Hatier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g\",\"caption\":\"Louis Hatier\"},\"logo\":{\"@id\":\"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/louis.hatier.me\",\"https:\/\/www.linkedin.com\/in\/louishatier\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Gravitee : une solution d'API Management - Melting Poutre","description":"D\u00e9couverte de la solution d'API Management Gravitee et de ses composants","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:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/","og_locale":"fr_FR","og_type":"article","og_title":"Gravitee : une solution d'API Management - Melting Poutre","og_description":"D\u00e9couverte de la solution d'API Management Gravitee et de ses composants","og_url":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/","og_site_name":"Melting Poutre","article_published_time":"2021-03-22T19:36:25+00:00","article_modified_time":"2021-03-22T19:36:26+00:00","og_image":[{"url":"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png","type":"","width":"","height":""}],"author":"Louis Hatier","twitter_misc":{"\u00c9crit par":"Louis Hatier","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#article","isPartOf":{"@id":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/"},"author":{"name":"Louis Hatier","@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11"},"headline":"Gravitee : une solution d&rsquo;API Management","datePublished":"2021-03-22T19:36:25+00:00","dateModified":"2021-03-22T19:36:26+00:00","mainEntityOfPage":{"@id":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/"},"wordCount":657,"commentCount":0,"publisher":{"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11"},"image":{"@id":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#primaryimage"},"thumbnailUrl":"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png","keywords":["Docker","Elasticsearch","Monitoring","Open source","REST","Security","SOAP"],"articleSection":["API"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/","url":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/","name":"Gravitee : une solution d'API Management - Melting Poutre","isPartOf":{"@id":"https:\/\/louis.hatier.me\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#primaryimage"},"image":{"@id":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#primaryimage"},"thumbnailUrl":"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png","datePublished":"2021-03-22T19:36:25+00:00","dateModified":"2021-03-22T19:36:26+00:00","description":"D\u00e9couverte de la solution d'API Management Gravitee et de ses composants","inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/louis.hatier.me\/blog\/gravitee-une-solution-api-management\/#primaryimage","url":"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png","contentUrl":"https:\/\/louis.hatier.me\/blog\/wp-content\/uploads\/2021\/03\/logo-gravitee.png","width":984,"height":965,"caption":"Logo Gravitee"},{"@type":"WebSite","@id":"https:\/\/louis.hatier.me\/blog\/#website","url":"https:\/\/louis.hatier.me\/blog\/","name":"Melting Poutre","description":"Du web et d&#039;autres choses","publisher":{"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/louis.hatier.me\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/2f200d0368def135b452e65491c4dd11","name":"Louis Hatier","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cd8d107ede5a4ec340326655e74a00ca62b02e41a02442f961c36f085aa89942?s=96&d=mm&r=g","caption":"Louis Hatier"},"logo":{"@id":"https:\/\/louis.hatier.me\/blog\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/louis.hatier.me","https:\/\/www.linkedin.com\/in\/louishatier\/"]}]}},"_links":{"self":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts\/882","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/comments?post=882"}],"version-history":[{"count":18,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts\/882\/revisions"}],"predecessor-version":[{"id":903,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/posts\/882\/revisions\/903"}],"wp:attachment":[{"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/media?parent=882"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/categories?post=882"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/louis.hatier.me\/blog\/wp-json\/wp\/v2\/tags?post=882"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}