2012-04-22 30 views
11

Mã trạng thái HTTP nào tôi cần quay lại để cho biết "yêu cầu cập nhật phần mềm máy khách"? Ví dụ, máy chủ đã thay đổi định dạng của dữ liệu được sử dụng để phân phối và các máy khách cũ sẽ không thể làm việc với điều này, vì vậy máy khách phải nâng cấp để sử dụng dữ liệu mới.Mã trạng thái HTTP cho "yêu cầu cập nhật phần mềm máy khách" - sử dụng những gì?

Tôi không muốn sử dụng 404 hoặc 410 vì tôi muốn cho biết đó vẫn là đường dẫn hợp lệ. 415? Không chắc.

+0

Đây là câu trả lời hay cho câu hỏi liên quan, đề xuất cách thực hiện phiên bản và mã nào để sử dụng: http://stackoverflow.com/questions/389169/best-practices-for-api-versioning – ArjunShankar

+0

Arjun, cảm ơn cho các liên kết - nói về mã 3xx, họ sẽ có nhiều apropriate có thể, nhưng vẫn không ai trong số họ khá phù hợp với điều kiện. Trong trường hợp của tôi, tài nguyên đã không di chuyển (tạm thời hay không). Tài nguyên là có, nhưng khách hàng nên được cập nhật. Vẫn chưa rõ mã nào thích hợp cho việc này. – antonio

+0

Một câu hỏi sau đó: Làm thế nào để máy chủ biết rằng khách hàng cần phải được cập nhật? – ArjunShankar

Trả lời

0

Nếu đó vẫn là đường dẫn hợp lệ, thì máy chủ của bạn sẽ tiếp tục hỗ trợ, thay vì chỉ ra lỗi.

Có vẻ như một chút như thể bạn đang đặt ra câu hỏi sai :-)

+0

Đường dẫn hợp lệ, có nghĩa là nó tồn tại và vẫn cung cấp dữ liệu. Nhưng nếu tôi tiếp tục hỗ trợ cả hai phiên bản, tôi sẽ kết thúc việc duy trì nhiều phiên bản dữ liệu (đó là OK trong thời gian ngắn, nhưng không ổn định trong thời gian dài). Tôi muốn nói với người dùng rằng mặc dù đó là một con đường hợp lệ, anh ấy nên nâng cấp phần mềm của mình lên phiên bản mới để tận dụng những dữ liệu mới nhất mà tôi cung cấp. Nếu không anh ta sẽ bị mắc kẹt với phiên bản cũ thậm chí không biết nó cũ. Anh ấy sẽ nghĩ rằng nó chưa bao giờ được cập nhật. – antonio

+0

Xin lỗi, tôi không thấy sự khác biệt. Nếu bạn gửi mã 2xx, người dùng sẽ không nhận thấy. Nếu bạn gửi mã 4xx, hãy ngắt khách hàng. Tôi không nghĩ có gì ở giữa. Nếu bạn muốn "ngừng sử dụng" các URI cũ, hãy đặt thứ gì đó vào tải trọng cho những người mà họ cần nâng cấp. –

+0

Julian, câu hỏi của tôi không còn tò mò. Tôi dự định có thay đổi định dạng dữ liệu sau vài tuần, điều này sẽ yêu cầu người dùng nâng cấp phần mềm của họ và muốn làm cho nó trở nên mượt mà như tôi có thể cho người dùng. Hầu hết sẽ nâng cấp và nhận được chức năng mới mà không có vấn đề gì. Nhưng luôn có một vài người tiếp tục sử dụng các phiên bản cũ của phần mềm. Tôi lo lắng về họ. Tôi không muốn trả lại 404: nó có thể gây nhầm lẫn. Tôi nghĩ rằng tình trạng này không phải là rất phổ biến, nhưng dường như không có mã HTTP cụ thể cho việc này. Bây giờ, tôi đoán tôi sẽ sử dụng 415. Tôi cũng có thể sử dụng một số mã 6xx tùy chỉnh. – antonio

-5

426 Upgrade buộc

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

426 Upgrade buộc Các khách hàng nên chuyển sang một giao thức khác nhau như TLS /1.0, được đưa ra trong trường Tiêu đề nâng cấp.

+5

Mã trạng thái này đề cập cụ thể đến giao thức đang sử dụng và không phải là phần mềm ứng dụng khách, vì vậy việc triển khai mã này trên API công khai sẽ gây nhầm lẫn. Ngay cả trong một hệ thống đóng, ai đó có thể mong đợi các chức năng khác dựa trên mã trạng thái. – orbitbot

1

Phần lớn người nhận xét lo ngại rằng bạn đang phá vỡ khách hàng cũ trong khi sử dụng cùng một URI, đó là một mối quan tâm hợp lý. Đó là lý do tại sao nhiều API được tự phiên bản trong các URI.

Điều đó nói rằng, tại sao không chỉ 400? Yêu cầu đến từ một khách hàng cũ, vì vậy đó là một yêu cầu tồi.

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