{"id":4172,"date":"2023-10-17T15:20:13","date_gmt":"2023-10-17T18:20:13","guid":{"rendered":"https:\/\/programathor.com.br\/blog\/?p=4172"},"modified":"2023-10-17T15:20:14","modified_gmt":"2023-10-17T18:20:14","slug":"programacao_defensiva","status":"publish","type":"post","link":"https:\/\/programathor.com.br\/blog\/programacao_defensiva\/","title":{"rendered":"Programa\u00e7\u00e3o defensiva: como prevenir erros e melhorar a qualidade do c\u00f3digo\u00a0"},"content":{"rendered":"\n<p>No mundo acelerado do desenvolvimento de software, produzir c\u00f3digo de alta qualidade \u00e9 essencial para o sucesso de qualquer projeto. No entanto, escrever c\u00f3digo impec\u00e1vel \u00e9 um desafio, e erros inevitavelmente acontecem. Para mitigar esses erros e aprimorar a qualidade do seu c\u00f3digo, os programadores adotam uma estrat\u00e9gia conhecida como programa\u00e7\u00e3o defensiva. Neste artigo, abordaremos o conceito de programa\u00e7\u00e3o defensiva, seus princ\u00edpios e melhores pr\u00e1ticas para ajud\u00e1-lo a escrever software mais robusto e confi\u00e1vel.\u00a0<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\"><strong>O que \u00e9 programa\u00e7\u00e3o defensiva?<\/strong>\u00a0<\/h2>\n\n\n\n<p>A programa\u00e7\u00e3o defensiva \u00e9 uma abordagem que enfatiza a antecipa\u00e7\u00e3o e a prote\u00e7\u00e3o contra poss\u00edveis erros em aplicativos de software. O principal objetivo da programa\u00e7\u00e3o defensiva \u00e9 minimizar a ocorr\u00eancia de problemas inesperados e reduzir a probabilidade de falhas cr\u00edticas. Ao adotar essa estrat\u00e9gia, os desenvolvedores buscam criar c\u00f3digo mais robusto, confi\u00e1vel e de f\u00e1cil manuten\u00e7\u00e3o.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Princ\u00edpios fundamentais da programa\u00e7\u00e3o defensiva<\/strong>\u00a0<\/h2>\n\n\n\n<ul>\n<li>N\u00e3o assumir nada&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>No mundo da programa\u00e7\u00e3o defensiva, o primeiro e principal princ\u00edpio \u00e9 n\u00e3o assumir nada. Os desenvolvedores nunca devem supor que seu c\u00f3digo sempre receber\u00e1 entradas v\u00e1lidas ou que as depend\u00eancias externas se comportar\u00e3o como esperado. Em vez disso, eles devem antecipar problemas e erros potenciais e escrever c\u00f3digo que possa lidar com eles de maneira elegante.&nbsp;<\/p>\n\n\n\n<ul>\n<li>Validar entradas&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Um dos pilares da programa\u00e7\u00e3o defensiva \u00e9 a valida\u00e7\u00e3o de entradas. Seja entrada de usu\u00e1rio ou dados de fontes externas, a valida\u00e7\u00e3o de entradas garante que os dados estejam no formato esperado e dentro de faixas aceit\u00e1veis. Ao validar entradas, \u00e9 poss\u00edvel prevenir vulnerabilidades de <a href=\"https:\/\/programathor.com.br\/blog\/gestao_de_seguranca_da_informacao\/?utm_source=blog&amp;utm_medium=programacao_defensiva\">seguran\u00e7a <\/a>e reduzir o risco de falhas causadas por dados inesperados.\u00a0<\/p>\n\n\n\n<ul>\n<li>Usar tipagem forte&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>A tipagem forte imp\u00f5e verifica\u00e7\u00f5es estritas de tipos de dados em uma <a href=\"https:\/\/programathor.com.br\/blog\/10_melhores_linguagens_de_programacao_para_iniciantes\/?utm_source=blog&amp;utm_medium=programacao_defensiva\">linguagem de programa\u00e7\u00e3o<\/a>. Ao usar a tipagem forte, \u00e9 poss\u00edvel identificar erros relacionados ao tipo de dados na compila\u00e7\u00e3o, reduzindo as chances de erros em tempo de execu\u00e7\u00e3o. Essa abordagem \u00e9 particularmente ben\u00e9fica em linguagens como <a href=\"https:\/\/programathor.com.br\/jobs-java\/?utm_source=blog&amp;utm_medium=programacao_defensiva\">Java <\/a>e <a href=\"https:\/\/programathor.com.br\/jobs-c-sharp\/?utm_source=blog&amp;utm_medium=programacao_defensiva\">C#<\/a>, onde a tipagem forte pode ajudar a prevenir erros de programa\u00e7\u00e3o comuns.\u00a0<\/p>\n\n\n\n<ul>\n<li>Implementar tratamento de erros&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>O tratamento de erros \u00e9 um aspecto crucial da programa\u00e7\u00e3o defensiva. Envolve a antecipa\u00e7\u00e3o e o tratamento gracioso de erros, em vez de permitir que eles interrompam o aplicativo. Os desenvolvedores devem usar mecanismos apropriados, como blocos try-catch, para capturar e gerenciar exce\u00e7\u00f5es, garantindo que o programa possa continuar funcionando mesmo quando algo inesperado ocorre.&nbsp;<\/p>\n\n\n\n<ul>\n<li>Codificar com cautela&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Escrever c\u00f3digo com cautela significa considerar casos extremos, entradas inv\u00e1lidas e cen\u00e1rios inesperados durante o processo de desenvolvimento. Ao implementar verifica\u00e7\u00f5es e valida\u00e7\u00f5es em v\u00e1rios pontos do c\u00f3digo, \u00e9 poss\u00edvel reduzir a probabilidade de erros e criar um aplicativo mais resiliente.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/programathor.com.br\/jobs\/?utm_source=blog&amp;utm_medium=programacao_defensiva\"><img decoding=\"async\" width=\"700\" height=\"380\" src=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2020\/12\/vaga-desenvolvedor-1-2.jpg\" alt=\"Vagas ProgramaThor - Programa\u00e7\u00e3o defensiva\" class=\"wp-image-2279\" srcset=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2020\/12\/vaga-desenvolvedor-1-2.jpg 700w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2020\/12\/vaga-desenvolvedor-1-2-300x163.jpg 300w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2020\/12\/vaga-desenvolvedor-1-2-676x367.jpg 676w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Melhores pr\u00e1ticas para programa\u00e7\u00e3o defensiva<\/strong>\u00a0<\/h2>\n\n\n\n<ul>\n<li>Usar afirma\u00e7\u00f5es (Assertions)&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>As afirma\u00e7\u00f5es s\u00e3o ferramentas poderosas para detectar problemas durante o desenvolvimento e os testes. Permitem declarar suposi\u00e7\u00f5es explicitamente e interromper o programa se essas suposi\u00e7\u00f5es forem violadas. Isso ajuda a identificar problemas cedo no ciclo de desenvolvimento.&nbsp;<\/p>\n\n\n\n<ul>\n<li>Minimizar depend\u00eancias&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Reduzir as depend\u00eancias de bibliotecas ou servi\u00e7os externos pode tornar seu c\u00f3digo mais robusto. Quando h\u00e1 menos depend\u00eancias, h\u00e1 menos pontos potenciais de falha em seu aplicativo.&nbsp;<\/p>\n\n\n\n<ul>\n<li>Escrever testes abrangentes&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>O desenvolvimento orientado por testes (TDD) e os testes automatizados desempenham um papel significativo na programa\u00e7\u00e3o defensiva. Testes abrangentes ajudam a identificar e corrigir problemas cedo no ciclo de desenvolvimento, garantindo que seu c\u00f3digo se comporte conforme o esperado.&nbsp;<\/p>\n\n\n\n<ul>\n<li>Documentar de forma abrangente&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>A documenta\u00e7\u00e3o clara e abrangente \u00e9 essencial para a programa\u00e7\u00e3o defensiva. Ela ajuda outros desenvolvedores a entender seu c\u00f3digo e seu comportamento esperado. Al\u00e9m disso, documentar cen\u00e1rios de borda potenciais e situa\u00e7\u00f5es de erro pode orientar outros na manipula\u00e7\u00e3o de situa\u00e7\u00f5es inesperadas.&nbsp;<\/p>\n\n\n\n<ul>\n<li>Revisar e refatorar continuamente&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Revis\u00f5es regulares de c\u00f3digo e refatora\u00e7\u00f5es s\u00e3o essenciais para manter a qualidade do c\u00f3digo. Essas pr\u00e1ticas ajudam a identificar e eliminar problemas potenciais e a manter uma base de c\u00f3digo limpa e livre de erros.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Benef\u00edcios da programa\u00e7\u00e3o defensiva<\/strong>\u00a0<\/h2>\n\n\n\n<ul>\n<li>Maior confiabilidade do c\u00f3digo&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Ao implementar t\u00e9cnicas de programa\u00e7\u00e3o defensiva, \u00e9 poss\u00edvel melhorar significativamente a confiabilidade do c\u00f3digo. Isso resulta em aplicativos mais est\u00e1veis e robustos.&nbsp;<\/p>\n\n\n\n<ul>\n<li>Redu\u00e7\u00e3o dos custos de manuten\u00e7\u00e3o&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>A programa\u00e7\u00e3o defensiva reduz a quantidade de problemas inesperados que surgem durante a manuten\u00e7\u00e3o. Ao abordar problemas potenciais de forma proativa, \u00e9 poss\u00edvel economizar tempo e recursos a longo prazo.&nbsp;<\/p>\n\n\n\n<ul>\n<li>Melhor seguran\u00e7a&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Muitas vulnerabilidades de seguran\u00e7a surgem de entradas n\u00e3o validadas e tratamento inadequado de erros. A programa\u00e7\u00e3o defensiva ajuda a mitigar essas vulnerabilidades, tornando o software mais seguro.&nbsp;<\/p>\n\n\n\n<ul>\n<li>Melhor experi\u00eancia do usu\u00e1rio&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>C\u00f3digo robusto significa menos falhas e comportamentos inesperados, resultando em uma melhor experi\u00eancia do usu\u00e1rio. Os usu\u00e1rios apreciar\u00e3o um aplicativo que funcione conforme o esperado, sem problemas frequentes.\u00a0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclus\u00e3o<\/strong>\u00a0<\/h2>\n\n\n\n<p>A programa\u00e7\u00e3o defensiva \u00e9 uma estrat\u00e9gia essencial para aprimorar a qualidade do c\u00f3digo e minimizar erros. Seguindo os princ\u00edpios e as melhores pr\u00e1ticas descritos neste artigo, \u00e9 poss\u00edvel criar software mais confi\u00e1vel, seguro e de f\u00e1cil manuten\u00e7\u00e3o. Adotar a programa\u00e7\u00e3o defensiva beneficia n\u00e3o apenas a equipe de desenvolvimento, mas tamb\u00e9m os usu\u00e1rios finais que contam com seus aplicativos para uma experi\u00eancia tranquila e sem problemas.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/programathor.com.br\/?utm_source=blog&amp;utm_medium=programacao_defensiva\"><img decoding=\"async\" width=\"1024\" height=\"171\" src=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2020\/12\/LOGO-PROGRAMATHOR-1024x171-1.jpg\" alt=\"ProgramaThor - Programa\u00e7\u00e3o defensiva\" class=\"wp-image-2280\" srcset=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2020\/12\/LOGO-PROGRAMATHOR-1024x171-1.jpg 1024w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2020\/12\/LOGO-PROGRAMATHOR-1024x171-1-300x50.jpg 300w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2020\/12\/LOGO-PROGRAMATHOR-1024x171-1-768x128.jpg 768w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2020\/12\/LOGO-PROGRAMATHOR-1024x171-1-676x113.jpg 676w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Consiga um emprego!<\/h2>\n\n\n\n<p>Est\u00e1 procurando por uma oportunidade de trabalho como desenvolvedor? Voc\u00ea pode encontrar seu pr\u00f3ximo emprego aqui na ProgramaThor, uma plataforma focada em vagas para desenvolvedores. Basta\u00a0<a href=\"https:\/\/programathor.com.br\/users\/sign_up\/?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=texto.final\">se cadastrar\u00a0<\/a>e completar seu perfil para come\u00e7ar a se candidatar \u00e0s vagas que mais combinam com voc\u00ea! Veja nossas\u00a0<a href=\"http:\/\/www.programathor.com.br\/jobs\/?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=texto.final\">vagas.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No mundo acelerado do desenvolvimento de software, produzir c\u00f3digo de alta qualidade \u00e9 essencial para o sucesso de qualquer projeto. No entanto, escrever c\u00f3digo impec\u00e1vel \u00e9 um desafio, e erros inevitavelmente acontecem. Para mitigar esses erros e aprimorar a qualidade do seu c\u00f3digo, os programadores adotam uma estrat\u00e9gia conhecida como programa\u00e7\u00e3o defensiva. Neste artigo, abordaremos [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":4173,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[13,367],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Programa\u00e7\u00e3o defensiva: como prevenir erros - ProgramaThor<\/title>\n<meta name=\"description\" content=\"Neste artigo, abordamos o conceito de programa\u00e7\u00e3o defensiva, seus princ\u00edpios e melhores pr\u00e1ticas para ajud\u00e1-lo a escrever c\u00f3digo mais robusto\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/programathor.com.br\/blog\/programacao_defensiva\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Programa\u00e7\u00e3o defensiva: como prevenir erros - ProgramaThor\" \/>\n<meta property=\"og:description\" content=\"Neste artigo, abordamos o conceito de programa\u00e7\u00e3o defensiva, seus princ\u00edpios e melhores pr\u00e1ticas para ajud\u00e1-lo a escrever c\u00f3digo mais robusto\" \/>\n<meta property=\"og:url\" content=\"https:\/\/programathor.com.br\/blog\/programacao_defensiva\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog ProgramaThor\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ProgramaThorBr\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-17T18:20:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-17T18:20:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2023\/10\/Capa-Artigo-Template-16-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"676\" \/>\n\t<meta property=\"og:image:height\" content=\"366\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Marcela Ribeiro dos Santos\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ProgramaThor\" \/>\n<meta name=\"twitter:site\" content=\"@ProgramaThor\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marcela Ribeiro dos Santos\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Programa\u00e7\u00e3o defensiva: como prevenir erros - ProgramaThor","description":"Neste artigo, abordamos o conceito de programa\u00e7\u00e3o defensiva, seus princ\u00edpios e melhores pr\u00e1ticas para ajud\u00e1-lo a escrever c\u00f3digo mais robusto","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:\/\/programathor.com.br\/blog\/programacao_defensiva\/","og_locale":"pt_PT","og_type":"article","og_title":"Programa\u00e7\u00e3o defensiva: como prevenir erros - ProgramaThor","og_description":"Neste artigo, abordamos o conceito de programa\u00e7\u00e3o defensiva, seus princ\u00edpios e melhores pr\u00e1ticas para ajud\u00e1-lo a escrever c\u00f3digo mais robusto","og_url":"https:\/\/programathor.com.br\/blog\/programacao_defensiva\/","og_site_name":"Blog ProgramaThor","article_publisher":"https:\/\/www.facebook.com\/ProgramaThorBr\/","article_published_time":"2023-10-17T18:20:13+00:00","article_modified_time":"2023-10-17T18:20:14+00:00","og_image":[{"width":676,"height":366,"url":"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2023\/10\/Capa-Artigo-Template-16-2.png","type":"image\/png"}],"author":"Marcela Ribeiro dos Santos","twitter_card":"summary_large_image","twitter_creator":"@ProgramaThor","twitter_site":"@ProgramaThor","twitter_misc":{"Escrito por":"Marcela Ribeiro dos Santos","Tempo estimado de leitura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/programathor.com.br\/blog\/programacao_defensiva\/","url":"https:\/\/programathor.com.br\/blog\/programacao_defensiva\/","name":"Programa\u00e7\u00e3o defensiva: como prevenir erros - ProgramaThor","isPartOf":{"@id":"https:\/\/programathor.com.br\/blog\/#website"},"datePublished":"2023-10-17T18:20:13+00:00","dateModified":"2023-10-17T18:20:14+00:00","author":{"@id":"https:\/\/programathor.com.br\/blog\/#\/schema\/person\/424143a7d63a498d84acbee68b05bb78"},"description":"Neste artigo, abordamos o conceito de programa\u00e7\u00e3o defensiva, seus princ\u00edpios e melhores pr\u00e1ticas para ajud\u00e1-lo a escrever c\u00f3digo mais robusto","breadcrumb":{"@id":"https:\/\/programathor.com.br\/blog\/programacao_defensiva\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/programathor.com.br\/blog\/programacao_defensiva\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/programathor.com.br\/blog\/programacao_defensiva\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/programathor.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Dicas","item":"https:\/\/programathor.com.br\/blog\/category\/dicas\/"},{"@type":"ListItem","position":3,"name":"Programa\u00e7\u00e3o defensiva: como prevenir erros e melhorar a qualidade do c\u00f3digo\u00a0"}]},{"@type":"WebSite","@id":"https:\/\/programathor.com.br\/blog\/#website","url":"https:\/\/programathor.com.br\/blog\/","name":"Blog ProgramaThor","description":"A plataforma de recrutamento  para programadores pensada por programadores. Entenda melhor o mundo da programa\u00e7\u00e3o, a cria\u00e7\u00e3o de uma vaga eficiente, dicas de entrevista, as linguagens do momento, o mercado de desenvolvimento e muito mais!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/programathor.com.br\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/programathor.com.br\/blog\/#\/schema\/person\/424143a7d63a498d84acbee68b05bb78","name":"Marcela Ribeiro dos Santos","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/programathor.com.br\/blog\/#\/schema\/person\/image\/","url":"https:\/\/programathor.com.br\/blog\/wp-content\/litespeed\/avatar\/a663ae9a99e8bbb6ea2b2a22be9ef590.jpg?ver=1780094972","contentUrl":"https:\/\/programathor.com.br\/blog\/wp-content\/litespeed\/avatar\/a663ae9a99e8bbb6ea2b2a22be9ef590.jpg?ver=1780094972","caption":"Marcela Ribeiro dos Santos"},"url":"https:\/\/programathor.com.br\/blog\/author\/mariana\/"}]}},"_links":{"self":[{"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/posts\/4172"}],"collection":[{"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/comments?post=4172"}],"version-history":[{"count":1,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/posts\/4172\/revisions"}],"predecessor-version":[{"id":4174,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/posts\/4172\/revisions\/4174"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/media\/4173"}],"wp:attachment":[{"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/media?parent=4172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/categories?post=4172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/tags?post=4172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}