Tôi đã làm việc về vấn đề này được vài tuần và tôi không thể tìm ra giải pháp cho cuộc sống của mình. Việc tôi không tìm thấy tài liệu nào phù hợp (trên trang web của Drupal, hoặc bất cứ nơi nào khác) cũng không giúp được gì. Và các câu hỏi đã có ở đây đã lỗi thời (Dịch vụ 2.x).
Tôi đang cố gắng tạo dịch vụ REST cho trang web được hỗ trợ bởi Drupal Commerce. Hiện tại, tất cả các dịch vụ phải làm là cho phép các hoạt động CRUD cơ bản trên tài nguyên Đơn hàng và được bảo mật bằng OAuth, OAuth 2.0 không cần thiết. Nó cũng phải được gọi với một tập lệnh trên máy chủ, vì vậy không thể đăng nhập lại trực tiếp (mọi thứ được thực hiện với xác thực 2 chân).
Ngăn xếp hiện tại là:
- PHP 5.3.15
- Drupal 7,15
- Hồ sơ khởi động thương mại (7.x-2.0-rc1)
- Dịch vụ 7.x-3.2
- OAuth 7.x-3.0 + 18-dev
- Xác thực OAuth 7.x-3.2
- Máy chủ REST 7.x-3.2
- Dịch vụ thương mại 7.x-1.x-dev (Đây là mô-đun tôi đã thêm mã Đơn hàng tùy chỉnh của mình vào)
Tôi có thể làm cho các hàm Lấy / Chỉ mục hoạt động cho Đơn hàng nếu tôi sử dụng thư viện OAuth PHP và chỉ gọi yêu cầu mã thông báo mỗi lần (Tôi thậm chí không chắc chắn những gì đang diễn ra ở đó, ngoại trừ việc nó xác thực ...). Nếu tôi cố gắng POST vào Đơn hàng và tạo đơn hàng, tôi nhận được 406 với tập lệnh và 401 khi tôi thử yêu cầu POST trực tiếp từ Bảng điều khiển REST trong Google Chrome, ngay cả khi OAuth bị tắt.
Điều này đã khiến việc gỡ lỗi trở thành một cơn ác mộng vì tôi không biết điều gì đang diễn ra bên trong chức năng tạo của mình. Tôi đã thử tước bỏ logic tạo đơn hàng của nó và chỉ phản hồi lại tải trọng yêu cầu. Vẫn nhận được lỗi 406/401.
Tôi giả sử tôi nhận được lỗi 401 vì các đơn đặt hàng yêu cầu xác thực người dùng (ngay cả khi OAuth bị tắt cho dịch vụ).
Tôi không hiểu tại sao tôi nhận được 406 lỗi. Tôi chấp nhận application / json, đó là những gì máy chủ REST của tôi được đặt để trả về.
Đơn đặt hàng đã không được tạo ngay cả trước khi tôi nhận xét logic tạo đơn hàng. (Mà tôi sử dụng ở nơi khác trong trang web một cách hiệu quả.)
Đánh giá cao trước.
-T