¿Cómo puedo usar la API UUID?

9

Soy consciente de que la pregunta es (casi) un duplicado de la siguiente pregunta # 21991 , que se publicó en 2012. Pero esa pregunta NO está relacionada con Drupal 8, donde UUID está en el núcleo.

Referencias

La documentación del módulo principal de Drupal 8 no incluye UUID.

Me pregunto si podría aprovechar el módulo UUID central de Drupal 8 para migrar y asignar datos relacionales importados de un entorno diferente, que tiene claves únicas generadas por Firebase.

Actualizar:

Se ha señalado amablemente que UUID no es un módulo.

Parece hacer registros UUID por defecto para entidades (también conocidos como nodos) y aparentemente puede usarse para mapear referencias de entidades.

¿Puedo hacer uso de esto cuando introduzco datos externos que ya tienen ID únicos? ¿Entonces tengo los ID de "nodo" y puedo mapear con los UUID?

Actualización basada en más comentarios:

El objetivo es usar UUID con entidades y el módulo REST. Respectivamente, parece sensato hacerlo al importar datos relacionales externos, que ya tienen ID únicos.

Solo trato de entender cómo funciona el UUID, qué puede hacer y qué no, cómo puedo generar y validar los UUID, qué debo tener en cuenta si introduzco identificaciones externas.

Stefan
fuente

Respuestas:

10

Supongo que lo que quiere saber es cómo generar un UUID en Drupal 8, porque realmente no hay mucho más que pueda hacer;)

Todas las entidades tienen un UUID automáticamente, por lo que si almacena sus datos como una configuración o entidad de contenido, solo tiene que definir la clave de entidad uuid.

Para generar un UUID usted mismo, necesita el servicio uuid:

$uuid = \Drupal::service('uuid');
$uuid->generate();
$uuid->isValid($uuid_to_validate);
Berdir
fuente
Gracias. Entiendo hasta ahora, que se generan automáticamente. ¿Entonces sugiere que debo introducir la lógica externa de UUID a través del servicio que mencionó? Pero eso sería para la generación. ¿Puedo guardar también una entidad con un UUID dado?
Stefan
Lo siento, aún no lo he probado. Es por eso que originalmente estaba solicitando una documentación, para poder investigar un poco.
Stefan
No estoy seguro de entender. Tenga en cuenta que estoy hablando de un servicio de inyección de dependencia (Symfony), no de un servicio web. Sí, puede guardar entidades con su propio UUID si ya tiene uno, simplemente páselo a YourEntity :: create () como valor inicial.
Berdir
Ok, gracias. ¿Sabes dónde puedo obtener más información sobre esto, además de la API? Debido a que es algo difícil entender la imagen completa solo mirando la API.
Stefan
1
No estoy seguro de a qué imagen te refieres, ya que todavía no me queda claro qué estás tratando de hacer. Realmente no hay nada más que decir sobre el componente / servicio UUID en sí, no hace nada más que generar y validar UUID. Si eso no responde a su pregunta, entonces quizás haya hecho la pregunta equivocada :) Intente preguntar exactamente lo que está tratando de lograr, posiblemente como una nueva pregunta. Porque puede ser que su pregunta no sea tanto sobre UUID como sobre cómo la entidad o tal vez el módulo REST están usando UUID. Además, hola compañero suizo :)
Berdir
1

Para generar uuid con drush:

drush php-eval "echo \Drupal::service('uuid')->generate();"
eco
fuente