Điểm:0

Trang web được tách rời dưới dạng lớp trình bày (hiển thị) cho các dịch vụ siêu nhỏ bên ngoài?

lá cờ dk

Tôi hiểu rằng Drupal 9 sẵn có rất có khả năng vì một Drupal không đầu tách rời hay còn gọi là Drupal đóng vai trò là phần phụ trợ cho các ứng dụng khác (khả năng REST, JSONAPI cốt lõi).

Tuy nhiên, tôi đang nghĩ về một cách ngược lại: có Drupal 9 như một lớp trình bày thuần túy kéo và hiển thị dữ liệu từ các API dịch vụ vi mô bên ngoài khác nhau. Ví dụ: API bên ngoài xuất ra JSON danh sách sản phẩm và trang Drupal yêu cầu dữ liệu đó hiển thị trên trang của nó.

Có thể không cần ánh xạ dữ liệu đã kéo vào các thực thể Drupal mà chỉ cần hiển thị chúng trên trang Drupal. (Lý do tôi không muốn ánh xạ dữ liệu và lưu trữ vào Drupal là vì nó sẽ tạo ra tập dữ liệu trùng lặp, đây có thể không phải là cách thực hành tốt để thiết lập kiến ​​trúc dịch vụ vi mô.)

Có các phương pháp, mô-đun được đề xuất hiện có cho trường hợp như vậy trên thị trường cho Drupal 9 không? Nếu không có mô-đun nào phù hợp với trường hợp này, tôi có thể xem xét thêm các phần nào của nhà phát triển (ví dụ: các hook được sử dụng bởi mô-đun Chế độ xem)?


CẬP NHẬT @ ngày 26 tháng 9 năm 2021

Để tham khảo và bất kỳ ai có thể quan tâm đến tình huống như vậy, tôi kết thúc với hệ sinh thái Nguồn cấp dữ liệu.

Dưới đây là các mô-đun được đóng góp hoạt động cùng nhau cho việc này:

  • nguồn cấp dữ liệu
  • Trình phân tích cú pháp mở rộng
  • Giả mạo nguồn cấp dữ liệu

Nguồn cấp dữ liệu (chính) không có phân tích cú pháp định dạng JSON, Trình phân tích cú pháp mở rộng nguồn cấp dữ liệu (feeds_ex) thêm hỗ trợ JSON, sử dụng các thư viện JsonPath. Luôn sử dụng 'nhà soạn nhạc' để cài đặt những phụ thuộc này để giải quyết. Sử dụng mô-đun Ludwig để kiểm tra xem có thiếu thư viện cần thiết nào không.

Một tài liệu tham khảo tuyệt vời ở đây: https://www.mediacurrent.com/blog/drupal-8-feeds-import-external-json-api/


Đã cập nhật: Cũng thế

https://www.drupal.org/project/views_json_source

Điểm:1
lá cờ cn

Có thể không cần ánh xạ dữ liệu đã kéo vào các thực thể Drupal, chỉ cần chỉ cần hiển thị chúng lên trang Drupal.

Nếu bạn đang lấy từ một nguồn bên ngoài và không sử dụng các thực thể, tại sao lại sử dụng Drupal? Chức năng của mô-đun JSON:API là hiển thị các thực thể Drupal thông qua JSON:API; đó là tất cả những gì nó làm. Vì vậy, nếu bạn đi theo lộ trình JSON:API, bạn sẽ cần sử dụng các thực thể.

Dù sao, Lượt xem + hầu hết các mô-đun Drupal khác chủ yếu dựa vào khái niệm thực thể. API thực thể là một mô-đun đóng góp trong D7, nhưng nó là một phần cốt lõi và là một trong những khái niệm cơ bản của D8/D9.

Vì vậy, nếu xây dựng một lớp hiển thị, tôi sẽ bắt đầu với việc tìm ra cách ánh xạ dữ liệu bên ngoài của bạn vào các thực thể Drupal. Sau đó, hãy thử nghiệm với JSON:API trước khi REST, bởi vì nếu bạn đã có các thực thể, JSON:API sẽ thiết lập rất nhanh (vì nó hiển thị tất cả các thực thể theo mặc định) và cung cấp cho bạn một số không gian để thử nghiệm.

Một số mô-đun có khả năng hữu ích:

  • nguồn cấp dữ liệu để lấy dữ liệu bên ngoài và Giả mạo nguồn cấp dữ liệu để tinh chỉnh nó (xử lý trước)
  • Trường JSON hoặc Trường JSONB để lưu trữ dữ liệu JSON bên ngoài dưới dạng JSON, giảm bớt nhu cầu phân tích dữ liệu đó ngay lập tức (giới hạn ở cơ sở dữ liệu hỗ trợ JSON)
  • JSON: Trình khám phá API, PHPMyAdmin cho JSON:API
  • JSON:API bổ sung-- mặc dù tên, mô-đun này có lẽ là cần thiết. Nó cho phép bạn đổi tên các tài nguyên JSON:API thay vì sử dụng các tên lõi mặc định và nó cũng cho phép bạn dễ dàng vô hiệu hóa quyền truy cập vào các nhóm thực thể (bạn muốn, vì để lộ mọi thứ như JSON:API theo mặc định có thể là quá nhiều)
  • JSON:API Bao gồm để hợp nhất (tự động kéo tham chiếu thực thể)
  • JSON:Tài nguyên API để xác định điểm cuối của riêng bạn để làm bất cứ điều gì bạn muốn (cho tất cả quá trình xử lý tùy chỉnh)
lá cờ dk
cảm ơn vì những hướng dẫn này, nó giúp ích. Tôi nhận ra rằng đây có lẽ là một cuộc thảo luận nhiều quan điểm hơn là một câu hỏi, nó có thể bị đóng lại. Nhưng câu trả lời của bạn là hữu ích. cảm ơn!
lá cờ dk
re: "Nếu bạn đang lấy từ một nguồn bên ngoài và không sử dụng các thực thể, tại sao lại sử dụng Drupal?" Bởi vì tôi vẫn muốn sử dụng các hệ thống con rất mạnh của D9 như bộ định tuyến, bảo mật, seo, bộ nhớ đệm, theo chủ đề, v.v.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.