{"id":2132,"date":"2016-01-26T07:59:48","date_gmt":"2016-01-26T07:59:47","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=2132"},"modified":"2019-05-18T06:43:04","modified_gmt":"2019-05-18T13:43:04","slug":"how-to-validate-documents-types-in-sync-gateway","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/how-to-validate-documents-types-in-sync-gateway\/","title":{"rendered":"C\u00f3mo validar tipos de documentos en Sync Gateway"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"color: #333333; font-family: Arial, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: #ffffff;\"><img decoding=\"async\" src=\"\/wp-content\/original-assets\/2016\/january\/how-to-validate-documents-types-in-sync-gateway\/screen-shot-2016-01-19-at-3.00.04-am.png\" \/>En el blog anterior de la serie Sync Gateway, exploramos <a href=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-authorize-users-in-sync-gateway\/\">C\u00f3mo autenticar y autorizar usuarios<\/a> en una aplicaci\u00f3n mediante algunas de las funciones de Sync Gateway.  Continuando con esta serie, ahora exploraremos c\u00f3mo validar los tipos de documento en <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.1.0\/develop\/guides\/sync-gateway\/index.html\">Pasarela de sincronizaci\u00f3n<\/a> para determinar su accesibilidad desde el lado del cliente m\u00f3vil con un usuario en particular.  Esto nos llevar\u00e1 a la discusi\u00f3n del Canal sobre c\u00f3mo Couchbase Mobile hace la seguridad del lado de la lectura en el pr\u00f3ximo blog de nuestra serie.  Para la seguridad del lado de la escritura, exploraremos los m\u00e9todos clave en la Funci\u00f3n de Sincronizaci\u00f3n que permitir\u00edan que documentos particulares provenientes de usuarios conocidos sean escritos en la base de datos backend. <\/span><\/p>\n<h3 style=\"text-align: justify;\">Funci\u00f3n de sincronizaci\u00f3n<\/h3>\n<p style=\"text-align: justify;\"><span style=\"color: #333333; font-family: Arial, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none; background-color: #ffffff;\">Imaginemos que tenemos un documento o muchos documentos en nuestra base de datos por ejemplo donde tenemos una clave de tipo a la que haremos referencia en nuestro c\u00f3digo de validaci\u00f3n.  El coraz\u00f3n de Sync Gateway es la l\u00f3gica de implementaci\u00f3n de la funci\u00f3n de sincronizaci\u00f3n y a continuaci\u00f3n vemos c\u00f3mo se puede verificar un tipo de documento para los controles de accesibilidad para los usuarios en una aplicaci\u00f3n. \u00a0 <\/span><\/p>\n<pre><code class=\"\u201cjavascript\" language-javascript=\"\">\u201csync\u201d : \u2018\r\n  function(doc, oldDoc) { \r\n    if (doc.type == \u201cfriends\u201d) {          \/\/Process new friends document\r\n       requireUser(doc.owner);            \/\/The owner of the friends\r\n       access(doc.friends, \u201citems-\u201d+doc.owner);    \r\n       channel(\u201cprivate-\u201d+doc.owner);\r\n       access(doc.owner, \u201cprivate-\u201d+doc.owner)   \r\n    }   \r\n    else if (doc.type == \u201cvehicles\u201d){\r\n       requireUser(doc.owner);          \/\/The owner of the vehicles document\r\n       access(doc.vehicles, \u201citems-\u201d+doc.owner);    \r\n       channel(\u201cprivate-\u201d+doc.owner);\r\n       access(doc.owner, \u201cprivate-\u201d+doc.owner)  \r\n    }\r\n    else{\r\n       requireUser(doc.owner)\r\n       channel(\u201citems-\u201d+doc.owner);  \r\n    }\r\n  }\u2018 \r\n<\/code><\/pre>\n<p style=\"text-align: justify;\">Con el campo \"tipo\" en los documentos, podemos diferenciar por valores espec\u00edficos de lo que representa el documento.  Si un tipo de documento representa \"escuelas\", \"veh\u00edculos\" o \"amigos\", desde la funci\u00f3n de sincronizaci\u00f3n podemos a\u00f1adir una sentencia switch para capturar c\u00f3mo vamos a permitir el procesamiento de diferentes tipos de documentos de diferentes maneras desde la funci\u00f3n de sincronizaci\u00f3n.  Lo primero que hacemos es comprobar si el tipo de documento es \"amigos\" y si la propiedad del propietario del documento coincide con el ID de usuario autenticado actual mediante la sentencia '<a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.1.0\/develop\/guides\/sync-gateway\/sync-function-api-guide\/validation\/index.html\">requerirUsuario()<\/a>'.  Si la propiedad owner coincide con el usuario autenticado actual, entonces daremos acceso a un documento a todos los amigos a trav\u00e9s del canal 'items-doc.owner'.  Esto significa b\u00e1sicamente que nadie m\u00e1s ver\u00e1 la lista de amigos que ha sido invitada por el usuario, ya que es privada s\u00f3lo para el propio usuario.<\/p>\n<p style=\"text-align: justify;\">La cl\u00e1usula \"else\" es donde si no se trata de un documento de amigos o veh\u00edculos,<b> <\/b>entonces este ser\u00e1 un documento de art\u00edculo de la escuela y de nuevo validamos que la propiedad del propietario coincide con el ID de usuario autenticado actual.  Como antes,<b> <\/b>a\u00f1adimos los \u00edtems al canal '\u00edtems-' para la propiedad del propietario del \u00edtem y le damos a ese usuario acceso a ese canal.<\/p>\n<div>Mientras actualizamos la funci\u00f3n de sincronizaci\u00f3n con la l\u00f3gica de conmutaci\u00f3n anterior, podemos a\u00f1adir una prueba adicional para rechazar cualquier tipo de documento desconocido, de modo que si no es un documento del tipo \"amigos\", \"veh\u00edculos\" o \"escuelas\", rechazaremos el documento llamando a la funci\u00f3n '<a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.1.0\/develop\/guides\/sync-gateway\/sync-function-api-guide\/validation\/index.html\">throw()<\/a>'.<\/div>\n<pre><code class=\"\u201cjavascript\" language-javascript=\"\">else{\r\n  throw({forbidden: \u201cInvalid document type\u201d}); \r\n} <\/code><\/pre>\n<p style=\"text-align: justify;\">En lugar del m\u00e9todo 'requireUser()', lo sustituiremos por el m\u00e9todo<b> <\/b>m\u00e9todo 'requireAccess(\"items-\"+doc.owner)' donde ahora b\u00e1sicamente si quieres escribir un nuevo \u00edtem en una lista, tienes que tener acceso al canal de \u00edtems para el usuario en particular para el que quieres a\u00f1adir el \u00edtem.<\/p>\n<pre><code class=\"\u201cjavascript\" language-javascript=\"\" log=\"\" :=\"\" databases=\"\" nlp-sync=\"\" server=\"\" walrus:=\"\" bucket=\"\" users=\"\" sooa=\"\" disabled=\"disabled\" false=\"\" password=\"\" admin_channels=\"\" items-sooa=\"\" will=\"\" items-will=\"\" sync=\"\" function=\"\" doc=\"\" olddoc=\"\" if=\"\" type=\"=\" friends=\"\" process=\"\" new=\"\" document=\"\" requireuser=\"\" owner=\"\" the=\"\" of=\"\" access=\"\" items-=\"\" channel=\"\" private-=\"\" else=\"\" vehicles=\"\" throw=\"\" forbidden:=\"\" invalid=\"\" code=\"\"><\/code><\/pre>","protected":false},"excerpt":{"rendered":"<p>In the previous blog of the Sync Gateway series, we explored how to Authenticate and Authorize users in an application through some of the Sync Gateway features.\u00a0 Building from the series, we will now explore how to validate Document Types [&hellip;]<\/p>\n","protected":false},"author":30,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1810],"tags":[],"ppma_author":[8983],"class_list":["post-2132","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-mobile"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Validate Documents Types in Sync Gateway - The Couchbase Blog<\/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:\/\/www.couchbase.com\/blog\/es\/how-to-validate-documents-types-in-sync-gateway\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Validate Documents Types in Sync Gateway\" \/>\n<meta property=\"og:description\" content=\"In the previous blog of the Sync Gateway series, we explored how to Authenticate and Authorize users in an application through some of the Sync Gateway features.\u00a0 Building from the series, we will now explore how to validate Document Types [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/how-to-validate-documents-types-in-sync-gateway\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-01-26T07:59:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-05-18T13:43:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"William Hoang, Mobile Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"William Hoang, Mobile Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/\"},\"author\":{\"name\":\"William Hoang, Mobile Developer Advocate, Couchbase\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/425717456c198fdf9aaa5d7a6d42ad32\"},\"headline\":\"How to Validate Documents Types in Sync Gateway\",\"datePublished\":\"2016-01-26T07:59:47+00:00\",\"dateModified\":\"2019-05-18T13:43:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/\"},\"wordCount\":494,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Couchbase Mobile\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/\",\"name\":\"How to Validate Documents Types in Sync Gateway - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/1\\\/2022\\\/11\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2016-01-26T07:59:47+00:00\",\"dateModified\":\"2019-05-18T13:43:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/how-to-validate-documents-types-in-sync-gateway\\\/#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\\\/how-to-validate-documents-types-in-sync-gateway\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Validate Documents Types in Sync Gateway\"}]},{\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\\\/425717456c198fdf9aaa5d7a6d42ad32\",\"name\":\"William Hoang, Mobile Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g650445f1ea30314c4f3555dd680154f5\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g\",\"caption\":\"William Hoang, Mobile Developer Advocate, Couchbase\"},\"description\":\"William was a Developer Advocate on the Mobile Engineering\\\/Developer Experience team at Couchbase. His love for coffee and code has transcended him into the world of mobile while appreciating the offline in-person experiences. Prior, William worked on the Developer Relations team over at Twitter, BlackBerry, and Microsoft while also having been a Software Embedded GPS engineer at Research In Motion. William graduated from McGill University in Electrical Software Engineering\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/author\\\/william-hoang\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Validate Documents Types in Sync Gateway - The Couchbase Blog","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\/es\/how-to-validate-documents-types-in-sync-gateway\/","og_locale":"es_MX","og_type":"article","og_title":"How to Validate Documents Types in Sync Gateway","og_description":"In the previous blog of the Sync Gateway series, we explored how to Authenticate and Authorize users in an application through some of the Sync Gateway features.\u00a0 Building from the series, we will now explore how to validate Document Types [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/how-to-validate-documents-types-in-sync-gateway\/","og_site_name":"The Couchbase Blog","article_published_time":"2016-01-26T07:59:47+00:00","article_modified_time":"2019-05-18T13:43:04+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"William Hoang, Mobile Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"William Hoang, Mobile Developer Advocate, Couchbase","Est. reading time":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/"},"author":{"name":"William Hoang, Mobile Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/425717456c198fdf9aaa5d7a6d42ad32"},"headline":"How to Validate Documents Types in Sync Gateway","datePublished":"2016-01-26T07:59:47+00:00","dateModified":"2019-05-18T13:43:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/"},"wordCount":494,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Couchbase Mobile"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/","url":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/","name":"How to Validate Documents Types in Sync Gateway - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2016-01-26T07:59:47+00:00","dateModified":"2019-05-18T13:43:04+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/how-to-validate-documents-types-in-sync-gateway\/#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\/how-to-validate-documents-types-in-sync-gateway\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Validate Documents Types in Sync Gateway"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos 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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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\/425717456c198fdf9aaa5d7a6d42ad32","name":"William Hoang, Defensor del Desarrollador M\u00f3vil, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g650445f1ea30314c4f3555dd680154f5","url":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g","caption":"William Hoang, Mobile Developer Advocate, Couchbase"},"description":"William fue Developer Advocate en el equipo de Mobile Engineering\/Developer Experience de Couchbase. Su amor por el caf\u00e9 y el c\u00f3digo le ha trascendido al mundo de los m\u00f3viles, al tiempo que aprecia las experiencias presenciales fuera de l\u00ednea. Anteriormente, William trabaj\u00f3 en el equipo de Relaciones con Desarrolladores en Twitter, BlackBerry y Microsoft, adem\u00e1s de haber sido ingeniero de Software Embedded GPS en Research In Motion. William se licenci\u00f3 en Ingenier\u00eda El\u00e9ctrica de Software por la Universidad McGill.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/william-hoang\/"}]}},"acf":[],"authors":[{"term_id":8983,"user_id":30,"is_guest":0,"slug":"william-hoang","display_name":"William Hoang, Mobile Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/b912c9a97568a859697ee195432d0bd7cc3ed67d720ae2e6588b67313fa49e08?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2132","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=2132"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/2132\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=2132"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=2132"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=2132"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=2132"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}