2011-12-13 21 views
9

Tôi có tình huống cần API để kích hoạt sự kiện phía dịch vụ, không cần thông tin (ngoài xác thực) từ ứng dụng khách và không cần phải trả lại gì bởi máy chủ. Vì điều này không phù hợp với tương tác CRUD/Tài nguyên chuẩn, tôi có nên coi đây là chỉ báo rằng tôi đang làm điều gì đó sai, hoặc có một mẫu thiết kế RESTful để xử lý các điều kiện này không?Cách yên tĩnh để kích hoạt sự kiện phía máy chủ

Trả lời

0

REST xác định bản chất của giao tiếp giữa máy khách và máy chủ. Trong trường hợp này, tôi nghĩ rằng vấn đề là không có thông tin để chuyển giao.

Có lý do nào để khách hàng cần bắt đầu điều này không? Tôi muốn nói sự kiện phía máy chủ của bạn phải hoàn toàn tự chứa trong máy chủ. Có lẽ khởi động định kỳ với một cuộc gọi cron?

+2

Không có thông tin để chuyển không có nghĩa là khách hàng không thể bắt đầu cuộc gọi. Hãy suy nghĩ về một "khởi động lại" kích hoạt cho một tài nguyên máy ảo trên phía máy chủ. Những thứ như thế. – RayLuo

9

Khách hàng của bạn có thể chỉ:

POST /trigger 

Để mà máy chủ sẽ phản ứng với một 202 Accepted.

Bằng cách đó, yêu cầu của bạn vẫn có thể chứa các tiêu đề xác thực phù hợp và API có thể được mở rộng trong tương lai nếu bạn cần khách hàng cung cấp thực thể hoặc cần trả lại thông tin về cách truy vấn trạng thái sự kiện .

Không có gì "không yên tĩnh" về những gì bạn đang cố gắng làm ở đây; Nguyên tắc REST không phải tương quan với các hoạt động CRUD về tài nguyên.


Các spec for 202 nói:

Thực thể trở lại với phản ứng này nên bao gồm một dấu hiệu của tình trạng hiện tại của yêu cầu và hoặc là một con trỏ đến một tình trạng giám sát hoặc một số ước tính khi người dùng có thể mong đợi yêu cầu được đáp ứng .

Bạn không có nghĩa vụ gửi bất kỳ điều gì trong phản hồi, với "NÊN" trong định nghĩa.

Các vấn đề liên quan