{"id":3911,"date":"2017-08-10T07:00:01","date_gmt":"2017-08-10T14:00:01","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=3911"},"modified":"2025-06-13T19:28:02","modified_gmt":"2025-06-14T02:28:02","slug":"password-data-couchbase-golang-bcrypt","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/password-data-couchbase-golang-bcrypt\/","title":{"rendered":"Armazenamento seguro de dados de senha no Couchbase com Golang e BCrypt"},"content":{"rendered":"<p>Ao criar aplicativos da Web que armazenam senhas para seus usu\u00e1rios, nunca \u00e9 uma boa ideia armazen\u00e1-las como texto simples em seu banco de dados, seja ele NoSQL ou RDBMS. No ano passado, escrevi sobre <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/hashing-passwords-stored-in-couchbase-server-with-nodejs\/\" target=\"_blank\" rel=\"noopener\">Usando o BCrypt com Node.js e Couchbase<\/a> bem como <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/storing-password-data-safely-with-java-and-spring-security-bcrypt\/\" target=\"_blank\" rel=\"noopener\">Usando o BCrypt com Java e Couchbase<\/a>. E se quisermos levar isso para a Golang?<\/p>\n<p>Veremos como fazer hash de senhas em um aplicativo Golang usando o BCrypt para armazen\u00e1-las com seguran\u00e7a em <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/\" target=\"_blank\" rel=\"noopener\">Couchbase<\/a>.<\/p>\n<p><!--more--><\/p>\n<p>Para esclarecer, estamos interessados no hashing de senhas, n\u00e3o na criptografia de senhas, pois a criptografia implica que a decodifica\u00e7\u00e3o \u00e9 poss\u00edvel. O hashing \u00e9 um processo unidirecional.<\/p>\n<p>O melhor de tudo em Go \u00e9 que h\u00e1 um <a href=\"https:\/\/godoc.org\/golang.org\/x\/crypto\/bcrypt\" target=\"_blank\" rel=\"noopener\">BCrypt<\/a> incorporado. Ao usar esse pacote ou fazer qualquer coisa relacionada ao BCrypt, voc\u00ea se concentrar\u00e1 em duas fun\u00e7\u00f5es. A gera\u00e7\u00e3o de um hash e a compara\u00e7\u00e3o ou valida\u00e7\u00e3o de um hash.<\/p>\n<p>Em Go, voc\u00ea poderia gerar um novo hash com base na string de senha, como a seguir:<\/p>\n<pre class=\"lang:default decode:true\">hash, err := bcrypt.GenerateFromPassword([]byte(\"my-password\"), 10)<\/pre>\n<p>Usando o <code>GenerateFromPassword<\/code> voc\u00ea passa uma cadeia de caracteres, bem como um valor de custo. Quanto maior o valor do custo, mais lenta ser\u00e1 a fun\u00e7\u00e3o, pois o valor do custo \u00e9 o n\u00famero de vezes que o hash \u00e9 aplicado.<\/p>\n<p>Se voc\u00ea quiser ver se uma senha de texto simples corresponde a uma senha com hash, poder\u00e1 executar o seguinte:<\/p>\n<pre class=\"lang:default decode:true\">err = bcrypt.CompareHashAndPassword([]byte(\"hashed-password\"), []byte(\"plaintext-password\"))<\/pre>\n<p>Se n\u00e3o houver erro, as senhas coincidiram.<\/p>\n<p>Ent\u00e3o, como voc\u00ea pode usar essa funcionalidade de hash de senha com o Couchbase?<\/p>\n<p>Veja, por exemplo, o seguinte:<\/p>\n<pre class=\"lang:default decode:true\">type Account struct {\r\n\tType     string `json:\"type,omitempty\"`\r\n\tEmail    string `json:\"email,omitempty\"`\r\n\tPassword string `json:\"password,omitempty\"`\r\n}\r\n\r\nfunc main() {\r\n    cluster, _ := gocb.Connect(\"couchbase:\/\/localhost\")\r\n    bucket, _ := cluster.OpenBucket(\"default\", \"\")\r\n    email := \"test@example.com\"\r\n    pass := \"my-password\"\r\n    hash, _ := bcrypt.GenerateFromPassword([]byte(pass), 10)\r\n    account := Account{\r\n        Type:     \"account\",\r\n        Email:    email,\r\n        Password: string(hash),\r\n    }\r\n    bucket.Insert(email, account, 0)\r\n    account = Account{}\r\n    bucket.Get(email, &amp;account)\r\n\terr := bcrypt.CompareHashAndPassword([]byte(account.Password), []byte(pass))\r\n\tif err != nil {\r\n\t\tfmt.Println(err.Error())\r\n\t}\r\n}<\/pre>\n<p>O exemplo acima \u00e9 muito simples, mas mostra como voc\u00ea pode armazenar a senha do BCrypt e como compar\u00e1-la.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Voc\u00ea acabou de ver como usar o BCrypt em um aplicativo Golang. \u00c9 fundamental que as informa\u00e7\u00f5es confidenciais, como senhas, sejam transformadas em hash antes de serem colocadas em seu banco de dados, seja ele NoSQL ou outro.<\/p>\n<p>Para obter mais informa\u00e7\u00f5es sobre como usar o Couchbase com a Golang, consulte a se\u00e7\u00e3o <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/developers\/\" target=\"_blank\" rel=\"noopener\">Portal do desenvolvedor do Couchbase<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>When writing web applications that store passwords for your users, it is never a good idea to store them as plain text in your database, whether that be NoSQL or RDBMS. Last year I wrote about using BCrypt with Node.js [&hellip;]<\/p>","protected":false},"author":63,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,1816,1820,1813],"tags":[1560,1666,1759,1761],"ppma_author":[9032],"class_list":["post-3911","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-server","category-golang","category-security","tag-bcrypt","tag-encryption","tag-hash","tag-password"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Securely Storing Password Data in Couchbase with Golang and BCrypt<\/title>\n<meta name=\"description\" content=\"Learn how to use BCrypt in a Golang application to hash sensitive information like passwords before storing them in a NoSQL database like Couchbase.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/password-data-couchbase-golang-bcrypt\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Securely Storing Password Data in Couchbase with Golang and BCrypt\" \/>\n<meta property=\"og:description\" content=\"Learn how to use BCrypt in a Golang application to hash sensitive information like passwords before storing them in a NoSQL database like Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/password-data-couchbase-golang-bcrypt\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/thepolyglotdeveloper\" \/>\n<meta property=\"article:published_time\" content=\"2017-08-10T14:00:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:28:02+00:00\" \/>\n<meta name=\"author\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nraboy\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nic Raboy, Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\"},\"author\":{\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\"},\"headline\":\"Securely Storing Password Data in Couchbase with Golang and BCrypt\",\"datePublished\":\"2017-08-10T14:00:01+00:00\",\"dateModified\":\"2025-06-14T02:28:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\"},\"wordCount\":337,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"bcrypt\",\"Encryption\",\"hash\",\"password\"],\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Server\",\"GoLang\",\"Security\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\",\"name\":\"Securely Storing Password Data in Couchbase with Golang and BCrypt\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2017-08-10T14:00:01+00:00\",\"dateModified\":\"2025-06-14T02:28:02+00:00\",\"description\":\"Learn how to use BCrypt in a Golang application to hash sensitive information like passwords before storing them in a NoSQL database like Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Securely Storing Password Data in Couchbase with Golang and BCrypt\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1\",\"name\":\"Nic Raboy, Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g\",\"caption\":\"Nic Raboy, Developer Advocate, Couchbase\"},\"description\":\"Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in Java, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Apache Cordova. Nic writes about his development experiences related to making web and mobile development easier to understand.\",\"sameAs\":[\"https:\/\/www.thepolyglotdeveloper.com\",\"https:\/\/www.facebook.com\/thepolyglotdeveloper\",\"https:\/\/x.com\/nraboy\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/nic-raboy-2\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Armazenamento seguro de dados de senha no Couchbase com Golang e BCrypt","description":"Saiba como usar o BCrypt em um aplicativo Golang para fazer hash de informa\u00e7\u00f5es confidenciais, como senhas, antes de armazen\u00e1-las em um banco de dados NoSQL, como o Couchbase.","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:\/\/www.couchbase.com\/blog\/pt\/password-data-couchbase-golang-bcrypt\/","og_locale":"pt_BR","og_type":"article","og_title":"Securely Storing Password Data in Couchbase with Golang and BCrypt","og_description":"Learn how to use BCrypt in a Golang application to hash sensitive information like passwords before storing them in a NoSQL database like Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/password-data-couchbase-golang-bcrypt\/","og_site_name":"The Couchbase Blog","article_author":"https:\/\/www.facebook.com\/thepolyglotdeveloper","article_published_time":"2017-08-10T14:00:01+00:00","article_modified_time":"2025-06-14T02:28:02+00:00","author":"Nic Raboy, Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@nraboy","twitter_misc":{"Written by":"Nic Raboy, Developer Advocate, Couchbase","Est. reading time":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/"},"author":{"name":"Nic Raboy, Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1"},"headline":"Securely Storing Password Data in Couchbase with Golang and BCrypt","datePublished":"2017-08-10T14:00:01+00:00","dateModified":"2025-06-14T02:28:02+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/"},"wordCount":337,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["bcrypt","Encryption","hash","password"],"articleSection":["Best Practices and Tutorials","Couchbase Server","GoLang","Security"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/","url":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/","name":"Armazenamento seguro de dados de senha no Couchbase com Golang e BCrypt","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2017-08-10T14:00:01+00:00","dateModified":"2025-06-14T02:28:02+00:00","description":"Saiba como usar o BCrypt em um aplicativo Golang para fazer hash de informa\u00e7\u00f5es confidenciais, como senhas, antes de armazen\u00e1-las em um banco de dados NoSQL, como o Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/password-data-couchbase-golang-bcrypt\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Securely Storing Password Data in Couchbase with Golang and BCrypt"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/bb545ebe83bb2d12f91095811d0a72e1","name":"Nic Raboy, defensor dos desenvolvedores, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/8863514d8bed0cf6080f23db40e00354","url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","caption":"Nic Raboy, Developer Advocate, Couchbase"},"description":"Nic Raboy \u00e9 um defensor das modernas tecnologias de desenvolvimento m\u00f3vel e da Web. Ele tem experi\u00eancia em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experi\u00eancias de desenvolvimento relacionadas a tornar o desenvolvimento m\u00f3vel e da Web mais f\u00e1cil de entender.","sameAs":["https:\/\/www.thepolyglotdeveloper.com","https:\/\/www.facebook.com\/thepolyglotdeveloper","https:\/\/x.com\/nraboy"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/nic-raboy-2\/"}]}},"authors":[{"term_id":9032,"user_id":63,"is_guest":0,"slug":"nic-raboy-2","display_name":"Nic Raboy, Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bedeb68368d4681aca4c74fe5f697f0c423b80d498ec50fd915ba018b72c101f?s=96&d=mm&r=g","author_category":"","last_name":"Raboy","first_name":"Nic","job_title":"","user_url":"https:\/\/www.thepolyglotdeveloper.com","description":"Nic Raboy \u00e9 um defensor das modernas tecnologias de desenvolvimento m\u00f3vel e da Web. Ele tem experi\u00eancia em Java, JavaScript, Golang e uma variedade de estruturas, como Angular, NativeScript e Apache Cordova. Nic escreve sobre suas experi\u00eancias de desenvolvimento relacionadas a tornar o desenvolvimento m\u00f3vel e da Web mais f\u00e1cil de entender."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/3911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=3911"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/3911\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=3911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=3911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=3911"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=3911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}