{"id":2208,"date":"2015-06-28T11:36:53","date_gmt":"2015-06-28T14:36:53","guid":{"rendered":"https:\/\/devkico.itexto.com.br\/?p=2208"},"modified":"2015-06-28T11:36:53","modified_gmt":"2015-06-28T14:36:53","slug":"java-e-simples-voce-que-burocratiza-seus-projetos","status":"publish","type":"post","link":"https:\/\/devkico.itexto.com.br\/?p=2208","title":{"rendered":"Java \u00e9 simples: voc\u00ea que burocratiza seus projetos"},"content":{"rendered":"<p>Sempre me incomodou bastante toda esta hist\u00f3ria de que Java \u00e9 uma linguagem verbosa e sistemas feitos nesta s\u00e3o complexos. Ent\u00e3o resolvi escrever este post pra mostrar alguns erros cometidos por desenvolvedores que, realmente, tornam n\u00e3o a linguagem verbosa, mas sim seus projetos verdadeiras m\u00e1quinas <strong>&#8220;burrocr\u00e1ticas&#8221;<\/strong>.<\/p>\n<p>Este \u00e9 um primeiro post sobre alguns erros que encontro: \u00e9 capaz de surgirem outros em um futuro pr\u00f3ximo.<\/p>\n<h2>Pra qu\u00ea interfaces?<\/h2>\n<p>Este \u00e9 um ponto que fica muito claro quando voc\u00ea programa algum tempo em plataformas como Grails, Ruby on Rails ou Node.js e, em seguida, pega um projeto de revitaliza\u00e7\u00e3o de legados feitos em Java. Lemos em diversos livros ou palestras o seguinte princ\u00edpio:<\/p>\n<blockquote><p>&#8220;Programe para uma interface, n\u00e3o para uma implementa\u00e7\u00e3o&#8221;<\/p><\/blockquote>\n<p>O princ\u00edpio est\u00e1 corret\u00edssimo, mas a pergunta fundamental que o motiva n\u00e3o \u00e9 feita: <em>pra qu\u00ea preciso de uma interface?\u00a0<\/em>Respondo: para representar uma <strong>abstra\u00e7\u00e3o<\/strong>, ou seja, aquilo que \u00e9 essencial no servi\u00e7o e <strong>compartilhado por todas as suas diferentes implementa\u00e7\u00f5es<\/strong>.<\/p>\n<p>Portanto, se s\u00f3 existe\u00a0<strong>uma<\/strong> implementa\u00e7\u00e3o de uma classe no sistema\u00a0<em><strong>por que<\/strong><\/em> voc\u00ea precisa criar uma interface? N\u00e3o h\u00e1 o que abstrair da\u00ed.<\/p>\n<p>Dica um: crie interfaces apenas se existir mais de uma implementa\u00e7\u00e3o do servi\u00e7o cuja funcionalidade voc\u00ea deseja <strong>abstrair<\/strong>.<\/p>\n<h2>DAOs desnecess\u00e1rios quando se est\u00e1 usando um ORM<\/h2>\n<p>\u00c9 outro erro que encontro com frequ\u00eancia: imagine que seu sistema possua doze classes de dom\u00ednio, todas elas persistidas contra uma mesma base de dados (relacional ou n\u00e3o). Um padr\u00e3o comum que observo \u00e9 a gera\u00e7\u00e3o abusiva de objetos e classes no sistema:<\/p>\n<ul>\n<li>Uma interface para representar o DAO para cada entidade.<\/li>\n<li>A implementa\u00e7\u00e3o do DAO para aquela interface<\/li>\n<li>Todos os DAOs s\u00e3o executados contra a mesma base de dados<\/li>\n<li>O DAO exp\u00f5e algumas consultas, mas estas em sua esmagadora maioria (quando n\u00e3o todas) s\u00e3o usadas por uma \u00fanica classe do sistema..<\/li>\n<\/ul>\n<p>Levando em considera\u00e7\u00e3o que o papel do DAO \u00e9 acessar e escrever dados em um reposit\u00f3rio de dados, e existe uma ferramenta chamada ORM, acho interessante levantar sempre algumas perguntas:<\/p>\n<ul>\n<li>Dentro de um futuro pr\u00f3ximo voc\u00ea se v\u00ea trocando seu SGBD por alguma tecnologia ou fornecedor completamente diferentes?<\/li>\n<li>Seu projeto precisa lidar com diferentes tipos de persist\u00eancia de acordo com o ambiente no qual \u00e9 implantado?<\/li>\n<li>Se voc\u00ea usa um ORM (como Hibernate, EclipseLink ou JPA) para todas estas classes de dom\u00ednio, e todas s\u00e3o persistidas contra o mesmo reposit\u00f3rio de dados, realmente preciso ter implementados\u00a0<strong>N<\/strong> DAOs apenas para persistir o estado destas?<\/li>\n<li>Se s\u00f3 h\u00e1 uma implementa\u00e7\u00e3o do DAO, preciso realmente de uma interface?<\/li>\n<li>As consultas expostas por seu DAO s\u00e3o usadas por mais de um componente do sistema?<\/li>\n<\/ul>\n<p>Minha sugest\u00e3o aqui \u00e9 simples: os ORMs j\u00e1 nos oferecem um DAO gen\u00e9rico por padr\u00e3o (pense no\u00a0<em>Entity Manager<\/em> do JPA): tire proveito disto. \u00c9 exatamente o que Grails faz e, como vejo h\u00e1 quase uma d\u00e9cada, funciona muito bem! N\u00f3s n\u00e3o escrevemos DAOs em Grails: nossos servi\u00e7os usam apenas as consultas que realmente precisam e, quando h\u00e1 uma consulta compartilhada, a expomos ao restante do sistema atrav\u00e9s de uma fun\u00e7\u00e3o.<\/p>\n<p>Se voc\u00ea tem um servi\u00e7o respons\u00e1vel por gerenciar a l\u00f3gica de neg\u00f3cio que envolve uma ou mais classes de dom\u00ednio, e tamb\u00e9m possu\u00ed um ORM que j\u00e1 lida\u00a0<strong>bem<\/strong> com o processo de persist\u00eancia, pra qu\u00ea ficar criando DAOs que exp\u00f5em consultas usadas por um \u00fanico ponto do sistema para todo o resto?<\/p>\n<p>Solu\u00e7\u00e3o simples: escreva seu servi\u00e7o com um conjunto de m\u00e9todos p\u00fablicos bem definido que exponha aos clientes do mesmo apenas o que deve ser visto (isto se chama encapsulamento). Se ele precisa interagir com o banco de dados, use este DAO gen\u00e9rico fornecido pelo ORM internamente em seu servi\u00e7o e evite com isto criar uma s\u00e9rie de componentes que apenas ir\u00e3o aumentar a quantidade de c\u00f3digo que voc\u00ea precisar\u00e1 gerenciar no futuro.<\/p>\n<h2>Concluindo<\/h2>\n<p>Neste post expus apenas duas situa\u00e7\u00f5es que vejo repetidas vezes em projetos Java e que podem facilmente ser evitadas. Entendo perfeitamente o que motiva a ocorr\u00eancia destes erros: voc\u00ea quer fazer bem feito mas n\u00e3o refletiu a respeito das boas pr\u00e1ticas que muito provavelmente lhe foram impostas e n\u00e3o apresentadas.<\/p>\n<p>_ Ah&#8230; mas e se no futuro meu sistema precisar de&#8230;<br \/>\n_ Bom: se voc\u00ea sabe o que vai ocorrer, voc\u00ea n\u00e3o tem um &#8220;e se&#8221;, mas sim um &#8220;vai&#8221;, ent\u00e3o aplique.<br \/>\n_ Mas o futuro \u00e9 imprevis\u00edvel, preciso me preparar para ele.<br \/>\n_ Bacana: que ent\u00e3o voc\u00ea tenha uma base de c\u00f3digo menos complexa pra poder se adaptar mais r\u00e1pido a ele.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sempre me incomodou bastante toda esta hist\u00f3ria de que Java \u00e9 uma linguagem verbosa e sistemas feitos nesta s\u00e3o complexos. Ent\u00e3o resolvi escrever este post pra mostrar alguns erros cometidos por desenvolvedores que, realmente, tornam n\u00e3o a linguagem verbosa, mas sim seus projetos verdadeiras m\u00e1quinas &#8220;burrocr\u00e1ticas&#8221;. Este \u00e9 um primeiro post sobre alguns erros que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":512,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"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":[6],"tags":[],"class_list":["post-2208","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java \u00e9 simples: voc\u00ea que burocratiza seus projetos - \/dev\/Kico<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devkico.itexto.com.br\/?p=2208\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java \u00e9 simples: voc\u00ea que burocratiza seus projetos - \/dev\/Kico\" \/>\n<meta property=\"og:description\" content=\"Sempre me incomodou bastante toda esta hist\u00f3ria de que Java \u00e9 uma linguagem verbosa e sistemas feitos nesta s\u00e3o complexos. Ent\u00e3o resolvi escrever este post pra mostrar alguns erros cometidos por desenvolvedores que, realmente, tornam n\u00e3o a linguagem verbosa, mas sim seus projetos verdadeiras m\u00e1quinas &#8220;burrocr\u00e1ticas&#8221;. Este \u00e9 um primeiro post sobre alguns erros que [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?p=2208\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:published_time\" content=\"2015-06-28T14:36:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2009\/10\/java_logo_2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"250\" \/>\n\t<meta property=\"og:image:height\" content=\"332\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@loboweissmann\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2208\",\"url\":\"https:\/\/devkico.itexto.com.br\/?p=2208\",\"name\":\"Java \u00e9 simples: voc\u00ea que burocratiza seus projetos - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2208#primaryimage\"},\"image\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2208#primaryimage\"},\"thumbnailUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2009\/10\/java_logo_2.png\",\"datePublished\":\"2015-06-28T14:36:53+00:00\",\"dateModified\":\"2015-06-28T14:36:53+00:00\",\"author\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2208#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?p=2208\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2208#primaryimage\",\"url\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2009\/10\/java_logo_2.png\",\"contentUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2009\/10\/java_logo_2.png\",\"width\":250,\"height\":332},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=2208#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java \u00e9 simples: voc\u00ea que burocratiza seus projetos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\",\"url\":\"https:\/\/devkico.itexto.com.br\/\",\"name\":\"\/dev\/Kico\",\"description\":\"Desenvolvendo software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devkico.itexto.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\",\"name\":\"Kico (Henrique Lobo Weissmann)\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"caption\":\"Kico (Henrique Lobo Weissmann)\"},\"sameAs\":[\"https:\/\/x.com\/loboweissmann\"],\"url\":\"https:\/\/devkico.itexto.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Java \u00e9 simples: voc\u00ea que burocratiza seus projetos - \/dev\/Kico","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:\/\/devkico.itexto.com.br\/?p=2208","og_locale":"pt_BR","og_type":"article","og_title":"Java \u00e9 simples: voc\u00ea que burocratiza seus projetos - \/dev\/Kico","og_description":"Sempre me incomodou bastante toda esta hist\u00f3ria de que Java \u00e9 uma linguagem verbosa e sistemas feitos nesta s\u00e3o complexos. Ent\u00e3o resolvi escrever este post pra mostrar alguns erros cometidos por desenvolvedores que, realmente, tornam n\u00e3o a linguagem verbosa, mas sim seus projetos verdadeiras m\u00e1quinas &#8220;burrocr\u00e1ticas&#8221;. Este \u00e9 um primeiro post sobre alguns erros que [&hellip;]","og_url":"https:\/\/devkico.itexto.com.br\/?p=2208","og_site_name":"\/dev\/Kico","article_published_time":"2015-06-28T14:36:53+00:00","og_image":[{"width":250,"height":332,"url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2009\/10\/java_logo_2.png","type":"image\/png"}],"author":"Kico (Henrique Lobo Weissmann)","twitter_card":"summary_large_image","twitter_creator":"@loboweissmann","twitter_misc":{"Escrito por":"Kico (Henrique Lobo Weissmann)","Est. tempo de leitura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?p=2208","url":"https:\/\/devkico.itexto.com.br\/?p=2208","name":"Java \u00e9 simples: voc\u00ea que burocratiza seus projetos - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2208#primaryimage"},"image":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2208#primaryimage"},"thumbnailUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2009\/10\/java_logo_2.png","datePublished":"2015-06-28T14:36:53+00:00","dateModified":"2015-06-28T14:36:53+00:00","author":{"@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7"},"breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?p=2208#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?p=2208"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/?p=2208#primaryimage","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2009\/10\/java_logo_2.png","contentUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2009\/10\/java_logo_2.png","width":250,"height":332},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?p=2208#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"Java \u00e9 simples: voc\u00ea que burocratiza seus projetos"}]},{"@type":"WebSite","@id":"https:\/\/devkico.itexto.com.br\/#website","url":"https:\/\/devkico.itexto.com.br\/","name":"\/dev\/Kico","description":"Desenvolvendo software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devkico.itexto.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7","name":"Kico (Henrique Lobo Weissmann)","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","caption":"Kico (Henrique Lobo Weissmann)"},"sameAs":["https:\/\/x.com\/loboweissmann"],"url":"https:\/\/devkico.itexto.com.br\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2009\/10\/java_logo_2.png","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2208"}],"collection":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2208"}],"version-history":[{"count":1,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2208\/revisions"}],"predecessor-version":[{"id":2209,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/2208\/revisions\/2209"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/media\/512"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}