Làm cách nào tôi có thể sử dụng API UUID?


8

Tôi biết rằng câu hỏi này (gần như) là một bản sao của câu hỏi sau # 21991 , đã được đăng lại vào năm 2012. Nhưng câu hỏi đó KHÔNG liên quan đến Drupal 8, trong đó UUID là cốt lõi.

Người giới thiệu:

Tài liệu mô-đun lõi 8 Drupal không liệt kê UUID.

Tôi tự hỏi liệu tôi có thể tận dụng mô-đun UUID lõi của Drupal 8 để di chuyển và ánh xạ dữ liệu quan hệ được nhập từ một môi trường khác, có các khóa duy nhất được tạo bởi Firebase.

Cập nhật:

Nó đã được chỉ ra rằng UUID không phải là một mô-đun.

Nó dường như tạo các bản ghi UUID theo mặc định cho các thực thể (còn gọi là các nút) và rõ ràng có thể được sử dụng để ánh xạ các tham chiếu thực thể.

Tôi có thể sử dụng điều này khi tôi giới thiệu dữ liệu ngoài, đã có ID duy nhất không? Vậy tôi có ID "nút" và có thể ánh xạ với UUID không?

Cập nhật dựa trên ý kiến ​​thêm:

Mục tiêu là sử dụng UUID với các thực thể và mô đun REST. Về mặt tôn trọng, có vẻ hợp lý để làm như vậy khi nhập dữ liệu quan hệ bên ngoài, đã có ID duy nhất.

Tôi chỉ cố gắng hiểu cách UUID hoạt động, những gì nó có thể làm và những gì không, làm thế nào tôi có thể tạo và xác thực UUID, những gì tôi cần biết, nếu tôi giới thiệu ID bên ngoài.

Câu trả lời:


10

Tôi giả sử những gì bạn muốn biết là làm thế nào để tạo UUID trong Drupal 8, bởi vì thực sự không có nhiều thứ khác mà bạn có thể làm;)

Tất cả các thực thể đều có UUID tự động, vì vậy nếu bạn lưu trữ dữ liệu của mình dưới dạng cấu hình hoặc thực thể nội dung, bạn chỉ cần xác định khóa thực thể uuid.

Để tự tạo UUID, bạn cần dịch vụ uuid:

$uuid = \Drupal::service('uuid');
$uuid->generate();
$uuid->isValid($uuid_to_validate);

Cảm ơn bạn. Tôi hiểu cho đến nay, rằng chúng được tạo ra tự động. Vì vậy, bạn đề nghị tôi phải giới thiệu logic UUID bên ngoài thông qua dịch vụ mà bạn đề cập? Nhưng đó sẽ là cho thế hệ. Tôi cũng có thể lưu một thực thể với một UUID nhất định không?
Stefan

Xin lỗi, tôi chưa thử nó. Đó là lý do ban đầu tôi yêu cầu một tài liệu, vì vậy tôi có thể thực hiện một số nghiên cứu.
Stefan

Tôi không chắc là tôi hiểu. Lưu ý rằng tôi đang nói về dịch vụ tiêm phụ thuộc (Symfony), không phải dịch vụ web. Có, bạn có thể lưu các thực thể bằng UUID của riêng bạn nếu bạn đã có, chỉ cần chuyển nó vào YourEntity :: create () làm giá trị ban đầu.
Berdir

Ok cảm ơn bạn. Bạn có biết nơi tôi có thể nhận thêm thông tin về điều này, ngoài API không? Bởi vì thật khó để tìm ra toàn bộ bức tranh chỉ nhìn vào API.
Stefan

1
Không chắc chắn về hình ảnh của bạn vì nó vẫn chưa rõ ràng với tôi những gì bạn đang cố gắng làm. Thực sự không có gì để nói thêm về chính thành phần / dịch vụ của UUID, nó không làm gì ngoài việc tạo và xác nhận các UUID. Nếu điều đó không trả lời câu hỏi của bạn, thì có lẽ bạn đã hỏi sai câu hỏi :) Hãy thử hỏi chính xác những gì bạn đang cố gắng để đạt được, có thể là một câu hỏi mới. Bởi vì có thể câu hỏi của bạn không liên quan nhiều đến UUID vì đó là về cách thức thực thể hoặc có thể mô-đun REST đang sử dụng UUID. Ngoài ra, xin chào người Thụy Sĩ :)
Berdir

0

Để tạo uuid với drush:

drush php-eval "echo \Drupal::service('uuid')->generate();"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.