{"meta":{"title":"Migrar las ID de nodo global de GraphQL","intro":"Aprende sobre los dos formatos de ID de nodo global y cómo migrarte del formato tradicional al nuevo.","product":"GraphQL API","breadcrumbs":[{"href":"/es/graphql","title":"GraphQL API"},{"href":"/es/graphql/guides","title":"Guías"},{"href":"/es/graphql/guides/migrating-graphql-global-node-ids","title":"Migración de los ID de nodo globales"}],"documentType":"article"},"body":"# Migrar las ID de nodo global de GraphQL\n\nAprende sobre los dos formatos de ID de nodo global y cómo migrarte del formato tradicional al nuevo.\n\n## Antecedentes\n\nLa API GitHub GraphQL API admite actualmente dos tipos de formatos de identificador de nodo global. El formato heredado será cerrar definitivamente y se reemplazará por un nuevo formato. Esta guía te muestra cómo migrarte al formato nuevo, en caso de que sea necesario.\n\nCuando te migras al formato nuevo, garantizas que los tiempos de respuesta de tus solicitudes sigan siendo consistentes y pequeños. También se asegura de que su aplicación siga funcionando una vez que los ID heredados sean cerrar definitivamente.\n\nPara obtener más información sobre por qué el formato de identificador de nodo global heredado será cerrar definitivamente, consulte [Nuevo formato de identificador global próximamente en GraphQL](https://github.blog/2021-02-10-new-global-id-format-coming-to-graphql).\n\n## Determinar si necesitas realizar alguna acción\n\nSolo necesitas seguir los pasos de migración si almacenas referencias a las ID de nodo global de GraphQL. Estos identificadores corresponden al campo `id` de cualquier objeto del esquema. Si no almacenas ID de nodo global, entonces puedes seguir interactuando con la API sin cambios.\n\nAdemás, si actualmente descodifica los identificadores tradicionales para extraer información sobre el tipo (por ejemplo, si utiliza los dos primeros caracteres de `PR_kwDOAHz1OX4uYAah` para determinar si el objeto es una solicitud de extracción), el servicio se interrumpirá porque el formato de los identificadores ha cambiado. Deberías migrar tu servicio para tratar estas ID como secuencias opacas. Estas ID serán únicas, por lo tanto, puedes confiar en ellas directamente como referencias.\n\n## Migrar a los nuevos identificadores globales\n\nPara facilitar la migración al nuevo formato de identificador, puede usar el encabezado `X-Github-Next-Global-ID` en las solicitudes de GraphQL API. El valor del encabezado `X-Github-Next-Global-ID` puede ser `1` o `0`. Al establecer el valor en `1`, se obligará a la carga de respuesta a usar siempre el nuevo formato de identificador para cualquier objeto para el que haya solicitado el campo `id`. Al configurar el valor a `0`, se revertirá al comportamiento predeterminado, que es mostrar el ID legado o el nuevo ID dependiendo de la fecha de creación del objeto.\n\nAquí tienes una solicitud de ejemplo que utiliza un comando `curl`:\n\n```shell\n$ curl \\\n  -H \"Authorization: Bearer $GITHUB_TOKEN\" \\\n  -H \"X-Github-Next-Global-ID: 1\" \\\n  https://api.github.com/graphql \\\n  -d '{ \"query\": \"{ node(id: \\\"MDQ6VXNlcjM0MDczMDM=\\\") { id } }\" }'\n```\n\nAunque el identificador heredado `MDQ6VXNlcjM0MDczMDM=` se usó en la consulta, la respuesta contendrá el nuevo formato de identificador:\n\n```json\n{\"data\":{\"node\":{\"id\":\"U_kgDOADP9xw\"}}}\n```\n\nCon el encabezado `X-Github-Next-Global-ID`, puede encontrar el nuevo formato de identificador para los identificadores heredados a los que hace referencia en la aplicación. Entonces podrás actualizar esas referencias con la ID que recibiste en la respuesta. Deberías actualizar todas las referencias alas ID tradicionales y utilizar el formato de ID nuevo para cualquier solicitud subsecuente a la API.\nPara realizar operaciones por lote, puedes utilizar alias o emitir consultas de nodo múltiples en una llamada a la API. Para obtener más información, consulta [los documentos de GraphQL](https://graphql.org/learn/queries/#aliases).\n\nTambién puedes obtener la ID nueva para una colección de elementos. Por ejemplo, si quieres obtener la ID nueva para los últimos 10 repositorios de tu organización, podrías utilizar una consulta como esta:\n\n```graphql\n{\n  organization(login: \"github\") {\n    repositories(last: 10) {\n      edges {\n        cursor\n        node {\n          name\n          id\n        }\n      }\n    }\n  }\n}\n```\n\nTenga en cuenta que establecer `X-Github-Next-Global-ID` en `1` afectará al valor devuelto de cada campo `id` de la consulta. Esto significa que, incluso cuando envíe una consulta que no sea de `node`, obtendrá el nuevo identificador de formato si solicitó el campo `id`.\n\n## Compartir la retroalimentación\n\nSi te preocupa que la implementación de este cambio tenga un impacto en la aplicación, ponte en contacto con nosotros a través del portal  e incluye la información del nombre de tu aplicación para que podamos ayudarte mejor."}