2012-07-10 31 views
5

Tôi có một lớp dịch vụ REST chung được ghi vào các mô-đun Java có thể được cắm vào. Nếu bất kỳ hoạt động mong muốn nào không được mô-đun hỗ trợ (GET/POST/PUT/DELETE của một Tài nguyên), mô-đun ném java.lang.UnsupportedOperationException hoặc Loại ngoại lệ tương đương mà tôi có.HTTP 501 cho java.lang.UnsupportedOperationException

Vì vậy, tôi có thể trả lại Mã lỗi HTTP 501 cho ứng dụng khách trong trường hợp này không?

Trả lời

6

Trong trường hợp này bạn nên sử dụng 405Phương pháp không được phép (tất cả dấu ngoặc kép from Wikipedia):

Một yêu cầu được làm bằng một nguồn tài nguyên sử dụng một phương thức yêu cầu không được hỗ trợ bởi tài nguyên; ví dụ, sử dụng GET trên một biểu mẫu yêu cầu dữ liệu để được trình bày qua POST hoặc sử dụng PUT trên tài nguyên chỉ đọc.

501 là hợp lý:

Các máy chủ hoặc không nhận ra phương thức yêu cầu, hoặc nó thiếu khả năng để thực hiện yêu cầu.

nhưng tôi sẽ giữ nó cho các hoạt động mà bạn định triển khai trong tương lai gần.

+0

Cảm ơn Tomas. Chỉ cần làm rõ, nếu khách hàng đang cố gắng tạo tài nguyên/rest/module_name/Person và create() không được mô-đun xác định bởi "module_name", nó được coi là vấn đề yêu cầu của khách hàng và ném 405 thay vì vấn đề phía máy chủ bằng cách trả lại 501? Lý do tôi hỏi là, 4XX là mã lỗi liên quan đến khách hàng trong khi 5XX là máy chủ liên quan. –

+0

@BlueDiamond: vâng, có phải bạn (nhà cung cấp API) đang làm điều gì sai (5xx) hoặc khách hàng đang sử dụng API không chính xác (4xx) không? –

+0

Tôi hiểu rồi. :) Cảm ơn. –

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