@dibs và @bluesky_still Tôi hy vọng điều này sẽ giúp các bạn, nếu không phải là poster gốc:
Tôi nghĩ REST UI chỉ là không có trong 8.2.3.
Đây là những gì tôi đã làm để có được một số yêu cầu GET và POST hoạt động:
Thiết lập cấu hình REST
Bạn cần chỉnh sửa yml cho loại thực thể bạn đang cố gắng thay đổi cấu hình REST cho. Ví dụ, thực thể nút sẽ sử dụng rest.resource.entity.node.yml. Tôi đã có ấn tượng rằng RESTUI thực sự không hữu ích với 8.2+, vì vậy bạn phải làm điều đó bằng tay. Khi bạn đã tạo tệp này theo ý thích của mình, bạn cần nhập tệp đó vào trang web của mình.
Tôi vẫn không thể tìm ra cách để làm điều này "chính xác"; Tôi không biết nếu bạn cần sử dụng trình nhập cấu hình (sẽ gây ra lỗi UUID) hoặc đưa nó vào một chủ đề hoặc trong cài đặt mặc định của bạn hoặc những gì. Tôi đã có được cấu hình để làm việc. Tôi đã kết thúc việc sử dụng Mô-đun tính năng để tạo gói tính năng cho Cấu hình tài nguyên REST (quản trị / cấu hình / phát triển / tính năng / chỉnh sửa), tải xuống tính năng, giải nén gói và cài đặt mô-đun được tạo bởi các thay đổi.
Sau đó, tôi đã chỉnh sửa thủ công các tệp cấu hình trong thư mục của mô-đun đã tạo (DRUPAL_ROOT / mô-đun / MODULE_NAME / config / install / rest.resource.entity.node.yml) để có các cài đặt tôi muốn. Cuối cùng, tôi đã thực hiện các thay đổi bằng cách cập nhật tính năng từ trang cấu hình tính năng (admin / config / Development / features / nhấp vào "đã thay đổi" bên cạnh mô-đun bạn đã tạo, nhấp vào hộp kiểm bên cạnh các thay đổi và nhấp vào "Nhập" Thay đổi ").
Có một cách đơn giản hơn để xử lý việc nhập, nhưng nó hoạt động với tôi vào ngày 8.2.3.
Quyền Người dùng
Khi cấu hình REST của bạn được thiết lập, các loại thực thể sẽ tuân theo các quyền bạn đã đặt trong / admin / people / allow /. Vì vậy, nếu người dùng ẩn danh có thể xem các nút được xuất bản, họ cũng có thể NHẬN các nút được xuất bản, v.v. (Ít nhất, theo tài liệu .)
Nếu bạn vẫn gặp sự cố, bạn cần đảm bảo đưa csdrToken vào tiêu đề yêu cầu của bạn.
Các csrfToken
Yêu cầu GET đến điểm cuối YOU_SITE.DOMAIN / rest / session / token sẽ cung cấp cho bạn mã thông báo mà bạn có thể đặt làm tiêu đề X-CSRF-Token 'trên yêu cầu GET hoặc POST của bạn. Một ví dụ điển hình và đơn giản sử dụng jQuery để NHẬN mục nhập đầu tiên có thể trông như thế này:
function getFirstNode() {
jQuery
.get('YOURSITE/rest/session/token')
.done(function (data) {
var csrfToken = data;
jQuery.ajax({
url: 'YOURSITE/web/node/1?_format=hal_json',
method: 'GET',
headers: {
'Content-Type': 'application/hal+json',
'X-CSRF-Token': csrfToken,
},
success: function (node) {
console.log(node);
}
});
});
}
Nếu vẫn thất bại
Tôi cũng đã thiết lập thành công các điểm cuối GET bằng Mô-đun Lượt xem. Bài viết này thực hiện một công việc khá tốt để giải thích quy trình: http://redcrackle.com/blog/rest-export-view-drupal-8 . Nó sẽ không hoạt động cho các yêu cầu POST, nhưng nó sẽ giúp.
Tôi hi vọng cái này giúp được. Đó là một vấn đề thực sự khó khăn đối với những gì nên là một yêu cầu đơn giản và tài liệu KHÔNG làm tốt công việc này có thể truy cập được. Chúc may mắn!