{"id":792,"date":"2020-03-03T22:57:18","date_gmt":"2020-03-04T01:57:18","guid":{"rendered":"http:\/\/kondado.com.br\/blog\/?p=792"},"modified":"2023-01-23T17:28:31","modified_gmt":"2023-01-23T20:28:31","slug":"adicionando-o-conector-do-mongodb-na-platforma-da-kondado","status":"publish","type":"post","link":"https:\/\/kondado.com.br\/blog\/wiki\/2020\/03\/03\/adicionando-o-conector-do-mongodb-na-platforma-da-kondado\/","title":{"rendered":"MongoDB"},"content":{"rendered":"\n<p>Derivado da palavra &#8220;humongous&#8221; (em ingl\u00eas: algo maior que gigantesco), o MongoDB \u00e9 um dos bancos de dados n\u00e3o relacionais (nosql) mais utilizados no mundo. Grande parte desse sucesso deve-se ao fato de, al\u00e9m da vers\u00e3o <em>open source<\/em>, a empresa por tr\u00e1s do Mongo oferecer tamb\u00e9m o Mongo Atlas, uma vers\u00e3o hospedada do banco de dados n\u00e3o relacional.<\/p>\n\n\n\n<p>Lidar com bancos no-sql traz certas complica\u00e7\u00f5es, principalmente quando se considera que o Mongo n\u00e3o enfor\u00e7a tipagem, o que significa que cada documento (registro) de uma cole\u00e7\u00e3o (algo similar a uma tabela de um banco relacional) pode possuir um formato diferente, al\u00e9m de uma vari\u00e1vel (similar a uma coluna) em um documento poder assumir valores diferentes do que em outro. Em um documento, a coluna &#8220;createdAt&#8221; pode assumir o valor de &#8220;2020-01-01&#8221; e em outro, &#8220;01\/01\/2020&#8221; ou mesmo &#8220;primeiro de janeiro de dois mil e vinte&#8221;.<\/p>\n\n\n\n<p>Al\u00e9m do cuidado necess\u00e1rio no desenvolvimento de aplica\u00e7\u00f5es em produ\u00e7\u00e3o para manter um certo padr\u00e3o nas collections, analisar dados advindos do mongo \u00e9 algo um mais pouco complexo quando se fala de <em>analytics<\/em> e <em>data science<\/em>, j\u00e1 que fun\u00e7\u00f5es b\u00e1sicas como soma de uma vari\u00e1vel\/coluna precisam lidar com o fato de que alguns dos documentos podem assumir valores n\u00e3o num\u00e9ricos.<\/p>\n\n\n\n<p>Quando desenvolvemos o nosso primeiro conector com o Mongo, era necess\u00e1rio muito trabalho manual de casting e normaliza\u00e7\u00e3o para uma estrutura relacional. Hoje estamos lan\u00e7ando uma nova vers\u00e3o que inclui:<\/p>\n\n\n\n<ul><li>Op\u00e7\u00e3o de detec\u00e7\u00e3o autom\u00e1tica do tipo da coluna\/vari\u00e1vel e convers\u00e3o para um formato definido para que esse dado seja inserido em um banco relacional<\/li><li>Normaliza\u00e7\u00e3o de documentos aninhados\/nestados para as tabelas que s\u00e3o necess\u00e1rias, mapeando o documento de uma estrutura n\u00e3o relacional para uma relacional<\/li><li>Integra\u00e7\u00e3o incremental, sendo poss\u00edvel buscar apenas os documentos novos ou atualizados de cada collection<\/li><\/ul>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"1024\" height=\"529\" src=\"http:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2020\/03\/image-1024x529.png\" alt=\"\" class=\"wp-image-796\" srcset=\"https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2020\/03\/image-1024x529.png 1024w, https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2020\/03\/image-300x155.png 300w, https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2020\/03\/image-768x397.png 768w, https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2020\/03\/image.png 1298w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background has-small-font-size\">Este conector suporta as seguintes vers\u00f5es do MongoDB: 2.6, 3.0, 3.2, 3.4, 3.6, 4.0, 4.2, 4.4 e 5.0<\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background has-small-font-size\">N\u00e3o s\u00e3o suportados _ids que sejam em si outros objetos JSON &#8211; apenas s\u00e3o suportadas collections\/views cujo _id seja do tipo ObjectId, String ou algum outro tipo simples<\/p>\n\n\n\n<h2>Adicionando o conector<\/h2>\n\n\n\n<p>Para adicionar o conector do mongo na plataforma da Kondado, voc\u00ea primeiro precisa permitir que os <a href=\"https:\/\/kondado.com.br\/blog\/wiki\/ips-kondado\/\" data-type=\"URL\" data-id=\"https:\/\/kondado.com.br\/blog\/wiki\/ips-kondado\/\">nossos IPs<\/a> possam acessar o banco.<\/p>\n\n\n\n<p>Uma vez que voc\u00ea <a href=\"https:\/\/kondado.com.br\/blog\/o-que-e-firewall-blacklist-e-whitelist\/\">liberou os nossos IPs no seu firewall<\/a>, voc\u00ea pode adicionar as suas informa\u00e7\u00f5es de 2 formas: par\u00e2metros individuais ou connection string. Para selecionar entre elas, utilize o par\u00e2metro &#8220;M\u00e9todo de conex\u00e3o&#8221;.<\/p>\n\n\n\n<p>Caso voc\u00ea tenha selecione o m\u00e9todo de conex\u00e3o <em>Connection string, <\/em>voc\u00ea pode adicionar no campo &#8220;Connection string&#8221; a string de conex\u00e3o. Alguns exemplos de strings de conex\u00e3o est\u00e3o abaixo. <a href=\"https:\/\/www.mongodb.com\/docs\/manual\/reference\/connection-string\/\" data-type=\"URL\" data-id=\"https:\/\/www.mongodb.com\/docs\/manual\/reference\/connection-string\/\" target=\"_blank\" rel=\"noreferrer noopener\">Veja mais sobre como formatar sua connection string<\/a><\/p>\n\n\n\n<p><strong>Exemplos de <em>connection string<\/em>:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mongodb:\/\/mongodb0.example.com:27017<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">mongodb+srv:\/\/server.example.com\/<\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" width=\"526\" height=\"370\" src=\"https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2022\/10\/image-20.png\" alt=\"\" class=\"wp-image-5318\" srcset=\"https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2022\/10\/image-20.png 526w, https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2022\/10\/image-20-300x211.png 300w\" sizes=\"(max-width: 526px) 100vw, 526px\" \/><\/figure><\/div>\n\n\n\n<p>Caso opte pelo m\u00e9todo de conex\u00e3o <em>Par\u00e2metros individuais<\/em>, veja abaixo a descri\u00e7\u00e3o dos campos necess\u00e1rios<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" width=\"446\" height=\"601\" src=\"http:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2020\/03\/image-1.png\" alt=\"\" class=\"wp-image-798\" srcset=\"https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2020\/03\/image-1.png 446w, https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2020\/03\/image-1-223x300.png 223w\" sizes=\"(max-width: 446px) 100vw, 446px\" \/><\/figure><\/div>\n\n\n\n<ul><li><strong>Nome<\/strong>: Uma descri\u00e7\u00e3o interna do seu conector, por exemplo &#8220;Mongo produto&#8221;<\/li><li><strong>Endere\u00e7o<\/strong>: IP ou DNS do seu banco ou cluster. Insira aqui apenas o endere\u00e7o, sem incluir banco, porta ou par\u00e2metros<\/li><li><strong>DNS Seedlist<\/strong>: Marque essa op\u00e7\u00e3o apenas se o seu banco utiliza <em>seedlist <\/em>para conex\u00e3o (ou seja: a string de conex\u00e3o dele cont\u00e9m &#8220;+srv&#8221;). Essa op\u00e7\u00e3o \u00e9 bastante utilizada nos bancos MongoDB Atlas<\/li><li><strong>Porta<\/strong>: a porta que deve ser utilizada para a conex\u00e3o (geralmente 27017).<\/li><li><strong>Banco de autentica\u00e7\u00e3o<\/strong>: apenas o nome do banco de autentica\u00e7\u00e3o (por exemplo: <em>admin<\/em>)<\/li><li><strong>Banco de consulta<\/strong>: apenas o nome do banco de consulta<\/li><li><strong>Usu\u00e1rio<\/strong>: o usu\u00e1rio do banco de dados<\/li><li><strong>Senha<\/strong>: a senha do usu\u00e1rio<\/li><\/ul>\n\n\n\n<p>Agora, basta criar as integra\u00e7\u00f5es (uma por cole\u00e7\u00e3o) e come\u00e7ar a analisar os dados do Mongo de forma relacional.<\/p>\n\n\n\n<h2>Integra\u00e7\u00f5es<\/h2>\n\n\n\n<center>\n\t\t<a style=\"width: 100%; min-width: 100%\" href=\"https:\/\/kdd-public-files.s3.amazonaws.com\/wiki\/erd\/mongodb.svg\" target=\"_blank\" rel=\"noopener\">\n\t\t\t<div style=\"border-top:1px solid gray; border-bottom:1px solid gray; padding-bottom:10px; display: block;margin-left: auto;margin-right: auto;width: 100%; background-color: #efeaee\">\n\t\t\t\t<p style=\"width: 100%; min-width: 100%\">\n\t\t\t\t\t<p style=\"width: 100%; min-width: 100%; font-weight: bold; text-decoration: underline;\">\n\t\t\t\t\t\tGr\u00e1fico de relacionamento entre tabelas\n\t\t\t\t\t<\/p>\n\t\t\t\t\t<p style=\"width: 100%; min-width: 100%\">\n\t\t\t\t\t\t<div style=\"display: block;margin-left: auto;margin-right: auto;width: 50%; height:auto; background-color: white\">\n\t\t\t\t\t\t\t<img src=\"https:\/\/kdd-public-files.s3.amazonaws.com\/wiki\/erd\/mongodb.svg\" style=\"display: block;margin-left: auto;margin-right: auto;width: 150px;\">\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\t\t<\/a>\t\n\t<\/center>\n\n\n\n<h3><strong>Collections &amp; Views<\/strong><\/h3>\n\n\n\n<p>A nossa integra\u00e7\u00e3o consegue obter dados n\u00e3o apenas de collections, mas tamb\u00e9m views.<\/p>\n\n\n\n<p>O schema da(s) tabela(s) que ser\u00e3o criadas no seu banco de dados ir\u00e1 depender dos seguintes par\u00e2metros:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"642\" height=\"301\" src=\"https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2022\/02\/image-1.png\" alt=\"\" class=\"wp-image-4243\" srcset=\"https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2022\/02\/image-1.png 642w, https:\/\/kondado.com.br\/blog\/wiki\/wp-content\/uploads\/sites\/2\/2022\/02\/image-1-300x141.png 300w\" sizes=\"(max-width: 642px) 100vw, 642px\" \/><\/figure><\/div>\n\n\n\n<ul><li><strong>Normalizar<\/strong>: Indica se, caso voc\u00ea possua um collection\/view com documentos nestados\/aninhados, deseja que seja criada uma nova tabela para este novo n\u00edvel. Caso opte por n\u00e3o normalizar, os dados ser\u00e3o recepcionados em modo texto. A normaliza\u00e7\u00e3o \u00e9 aplicada apenas 1 n\u00edvel para baixo e os registros no segundo n\u00edvel herdar\u00e3o o _id dos respectivos registros de primeiro n\u00edvel.<\/li><li><strong>Cast:<\/strong> Caso voc\u00ea opte por aplica\u00e7\u00e3o de cast, n\u00f3s iremos realizar uma amostragem dos documentos da sua collection\/view para determinar o tipo que cada campo deve ter no seu destino. Esta amostragem \u00e9 r\u00edgida e caso todos os registros de um dado campo n\u00e3o sejam todos do mesmo tipo, sua coluna ser\u00e1 criada como texto. Caso voc\u00ea opte por n\u00e3o aplicar cast, sua integra\u00e7\u00e3o n\u00e3o poder\u00e1 ser incremental e todos os campos ser\u00e3o criados e inseridos como texto.<\/li><li><strong>(Opcional) _ids de amostra de schema (separados por v\u00edrgula)<\/strong>: Caso voc\u00ea possua alguns registros que est\u00e3o com um schema mais completo, pode fornec\u00ea-los aqui para que sejam considerados os campos na montagem do schema final<\/li><li><strong>(Opcional) campos onde n\u00e3o deve ser aplicado casting (separados por v\u00edrgula)<\/strong>: Caso voc\u00ea selecione Cast=Sim, voc\u00ea pode fornecer nomes de campos (separados por v\u00edrgula) que devem necessariamente ser escritos como <em>text<\/em> e n\u00e3o sofrer casting para outro tipo que pode ser confundido com o padr\u00e3o deles. Isso \u00e9 \u00fatil para campos que guardam n\u00fameros de documentos\/telefones\/CEPs e que apesar de se parecem com n\u00fameros, uma convers\u00e3o para n\u00famero pode alterar o seu valor &#8211; por exemplo, eliminar o 0 inicial de um CEP<\/li><\/ul>\n\n\n\n<p>As tabelas criadas, ter\u00e3o um formato similar ao abaixo (considerando que a tabela &#8220;nested&#8221; \u00e9 uma normaliza\u00e7\u00e3o)<\/p>\n\n\n\n<!--- __kdd_doc_updated:2021-20-07T09:28:47.725837Z --->\n<a name=\"parent_pipeline_type:collection\"><\/a>\n<a name=\"anchor..parent_pipeline::object..mongodb::collection\"><\/a>\n<a name=\"anchor..parent_pipeline::table..mongodb::collection::\"><\/a>\n<p style='padding-left:5%'>Objeto principal<\/p>\n<div style=\"padding-left:10%\"><table>\n\n\t\t\t  <tr style=\"border-bottom:1px solid gray\">\n\t\t\t    <th><small><b>Campo<\/b><\/small><\/th>\n\t\t\t    <th style=\"padding-left:10px\"><small><b>Tipo<\/b><\/small><\/th>\n\t\t\t    <th style=\"padding-left:10px\"><small><b><\/b><\/small><\/th>\n\t\t\t  <\/tr>\n\t\t\n\n\t\t\t\t<tr>\n\t\t\t\t\t\n\t\t\t\t\t<td style=\"vertical-align:top\">\n\t\t\t\t\t\t<a name=\"anchor..parent_pipeline::field..mongodb::collection::::_id\"><\/a>\n\t\t\t\t\t\t<small><p>_id<\/p><\/small>\n\t\t\t\t\t<\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><p>text<\/p><\/small><\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><\/small><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\n\n\t\t\t\t<tr>\n\t\t\t\t\t\n\t\t\t\t\t<td style=\"vertical-align:top\">\n\t\t\t\t\t\t<a name=\"anchor..parent_pipeline::field..mongodb::collection::::col_x\"><\/a>\n\t\t\t\t\t\t<small><p>col_x<\/p><\/small>\n\t\t\t\t\t<\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><p>text<\/p><\/small><\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><\/small><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\n\n\t\t\t\t<tr>\n\t\t\t\t\t\n\t\t\t\t\t<td style=\"vertical-align:top\">\n\t\t\t\t\t\t<a name=\"anchor..parent_pipeline::field..mongodb::collection::::col_y\"><\/a>\n\t\t\t\t\t\t<small><p>col_y<\/p><\/small>\n\t\t\t\t\t<\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><p>text<\/p><\/small><\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><\/small><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\n\n\t\t\t\t<tr>\n\t\t\t\t\t\n\t\t\t\t\t<td style=\"vertical-align:top\">\n\t\t\t\t\t\t<a name=\"anchor..parent_pipeline::field..mongodb::collection::::col_z\"><\/a>\n\t\t\t\t\t\t<small><p>col_z<\/p><\/small>\n\t\t\t\t\t<\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><p>text<\/p><\/small><\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><\/small><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\n<\/table><\/div>\n<a name=\"anchor..parent_pipeline::table..mongodb::collection::nested\"><\/a>\n<p style=\"padding-left:5%\">nested<\/p>\n<div style=\"padding-left:10%\"><table>\n\n\t\t\t  <tr style=\"border-bottom:1px solid gray\">\n\t\t\t    <th><small><b>Campo<\/b><\/small><\/th>\n\t\t\t    <th style=\"padding-left:10px\"><small><b>Tipo<\/b><\/small><\/th>\n\t\t\t    <th style=\"padding-left:10px\"><small><b><\/b><\/small><\/th>\n\t\t\t  <\/tr>\n\t\t\n\n\t\t\t\t<tr>\n\t\t\t\t\t\n\t\t\t\t\t<td style=\"vertical-align:top\">\n\t\t\t\t\t\t<a name=\"anchor..parent_pipeline::field..mongodb::collection::nested::_id\"><\/a>\n\t\t\t\t\t\t<small><p>_id<\/p><\/small>\n\t\t\t\t\t<\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><p>text<\/p><\/small><\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><\/small><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\n\n\t\t\t\t<tr>\n\t\t\t\t\t\n\t\t\t\t\t<td style=\"vertical-align:top\">\n\t\t\t\t\t\t<a name=\"anchor..parent_pipeline::field..mongodb::collection::nested::nested->nested_col_x&#8221;><\/a>\n\t\t\t\t\t\t<small><p>nested_col_x<\/p><\/small>\n\t\t\t\t\t<\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><p>text<\/p><\/small><\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><\/small><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\n\n\t\t\t\t<tr>\n\t\t\t\t\t\n\t\t\t\t\t<td style=\"vertical-align:top\">\n\t\t\t\t\t\t<a name=\"anchor..parent_pipeline::field..mongodb::collection::nested::nested->col_y&#8221;><\/a>\n\t\t\t\t\t\t<small><p>nested_col_y<\/p><\/small>\n\t\t\t\t\t<\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><p>text<\/p><\/small><\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><\/small><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\n\n\t\t\t\t<tr>\n\t\t\t\t\t\n\t\t\t\t\t<td style=\"vertical-align:top\">\n\t\t\t\t\t\t<a name=\"anchor..parent_pipeline::field..mongodb::collection::nested::nested->col_z&#8221;><\/a>\n\t\t\t\t\t\t<small><p>nested_col_z<\/p><\/small>\n\t\t\t\t\t<\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><p>text<\/p><\/small><\/td>\n\t\t\t\t\t<td style=\"padding-left:10px;vertical-align:top;\n\"><small><\/small><\/td>\n\t\t\t\t<\/tr>\n\t\t\t\n<\/table><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Derivado da palavra &#8220;humongous&#8221; (em ingl\u00eas: algo maior que gigantesco), o MongoDB \u00e9 um dos bancos de dados n\u00e3o relacionais (nosql) mais utilizados no mundo. Grande parte desse sucesso deve-se ao fato de, al\u00e9m da vers\u00e3o open source, a empresa por tr\u00e1s do Mongo oferecer tamb\u00e9m o Mongo Atlas, uma vers\u00e3o hospedada do banco de [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":793,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[229],"tags":[],"_links":{"self":[{"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/posts\/792"}],"collection":[{"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/comments?post=792"}],"version-history":[{"count":16,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/posts\/792\/revisions"}],"predecessor-version":[{"id":5607,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/posts\/792\/revisions\/5607"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/media\/793"}],"wp:attachment":[{"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/media?parent=792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/categories?post=792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kondado.com.br\/blog\/wiki\/wp-json\/wp\/v2\/tags?post=792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}