Không dùng API web: Thực tiễn tốt nhất?


18

Cuối cùng, bạn cần khấu hao các phần của API web công cộng. Tuy nhiên tôi đang bối rối về những gì sẽ là cách tốt nhất để làm điều đó. Nếu bạn có một cơ sở ứng dụng của bên thứ 3 lớn, chỉ cần kéo các phiên bản API cũ có vẻ như là cách làm sai vì hầu như tất cả các ứng dụng sẽ thất bại chỉ sau một đêm. Tuy nhiên, bạn không thể để web api cổ có sẵn mãi mãi vì nó có thể bị lỗi thời hoặc có những thay đổi đáng kể khiến việc làm việc với nó không thể thực hiện được.

Một số thực tiễn tốt nhất để loại bỏ ap ap web cũ là gì?

Câu trả lời:


17

Nghe có vẻ như poster ban đầu đã có hiệu quả, nhưng không chính thức phản đối API của họ (bất cứ điều gì được gọi là 'API cũ'). Tuy nhiên, cho đến khi nó được công bố và người dùng được thông báo rằng API không được dùng nữa, nó không chính thức bị phản đối.

API không dùng nữa là giai đoạn mã tạm thời, không hoạt động. Đó là nghi thức cuối cùng. Đây là giai đoạn cho phép người dùng / người tiêu dùng cấu hình lại các ứng dụng của họ cho API mới hơn và chào tạm biệt, làm cho hòa bình với API. Một số API có thể tồn tại lâu hơn các API khác, nhưng tại thời điểm này, chúng tôi biết thời gian của chúng không dài.

API đã xóa là một đám tang mã. Không có gì hơn nó có thể làm, nhưng xử lý đúng cách và tưởng niệm thích hợp.

Nhiều nhà phát triển API và dịch vụ chọn tham gia tang lễ mã thay vì thực hiện các nghi thức cuối cùng; tuy nhiên, tôi nghĩ điều đó có phần mạo hiểm Nếu có bất kỳ loại dịch vụ hoặc lời hứa hỗ trợ nào được thực hiện khi API / dịch vụ ban đầu được thông qua hoặc thông qua gia hạn, bạn có thể muốn tôn trọng cam kết đó trong một khoảng thời gian hợp lý trước khi thực hiện tang lễ.

Đối với các thư viện không phải là dịch vụ, tôi nghĩ rằng một phiên bản phát hành chính, bất kể thời gian, có lẽ là khoảng thời gian hợp lý hơn được chấp nhận và đảm bảo tính tương thích ngược. Ngoài ra, nó phụ thuộc vào tầm ảnh hưởng và vận động hành lang của người dùng để kéo dài tuổi thọ của nó ngoài thời gian đó. Và đừng ngạc nhiên nếu thỉnh thoảng có sự phản đối do sự phụ thuộc của bên thứ 3 không thể thay thế bị mắc kẹt trong tình trạng lấp lửng và bị ràng buộc với các phiên bản nhất định của các nền tảng nhất định.

Đối với các dịch vụ, tôi nghi ngờ bạn có thể muốn xem xét khoảng thời gian sáu tháng hoặc năm, đơn giản là do sự khác biệt giữa ai và cách thức dịch vụ có thể được tiêu thụ và phương thức phát triển tương ứng từ tiêu thụ dự án sang tiêu thụ dự án - nhiều dự án có thể tiêu thụ dịch vụ của bạn vẫn có thể thiết kế lớn và có thể lên lịch cho một chu kỳ phát hành dài hơn một năm. Hầu hết các ý kiến ​​của nhà phát triển từ bên ngoài sẽ đề xuất rằng những người có lịch trình dài có trách nhiệm đáp ứng thời gian chu kỳ của bạn và những dự án tiêu thụ chu kỳ dài đó nên áp dụng chu kỳ phát hành nhanh hơn và điều đó có thể đúng. Nhưng cuối cùng ngày xóa là điều mà bạn phải thương lượng với người dùng.

Một chiến lược tốt nhưng không chống đạn cho sự phản đối có thể là khi loại bỏ sự phản đối, làm nổi bật khung thời gian cho ý định xóa, cùng với yêu cầu bình luận hoặc phản đối trong định dạng khảo sát của các phần API được đề cập. Nếu bạn không có danh sách người dùng vì dịch vụ của bạn hoạt động với quyền truy cập ẩn danh [bán], bạn có thể xem xét nhật ký cho người dùng thường xuyên và đang hoạt động và gửi thông báo đến máy chủ hoặc quản trị viên tên miền để chuyển tiếp khi họ thấy phù hợp.


Ồ, câu trả lời rất nhiều thông tin
TheLQ

7

Hầu hết các API Web tôi sử dụng (từ các công ty như Google, Yahoo! và Microsoft) đều có thời gian "hoàng hôn". Các nhà phát triển được thông báo trong một thời gian hợp lý (ví dụ 3-6 tháng) về các tính năng sẽ bị khấu hao để cung cấp cho họ nhiều thời gian để nâng cấp trước.

Bạn có thể thêm chi tiết về thời kỳ hoàng hôn trong Điều khoản dịch vụ hoặc tài liệu khác để mọi người biết về cách thức hoạt động của nó. Điều này có nghĩa là khi ai đó quyết định sử dụng API của bạn, họ sẽ biết họ cần làm việc với lịch trình nào. Ví dụ: bạn có thể thông báo cho mọi người rằng họ sẽ cần nâng cấp hệ thống của họ mỗi năm một lần và có thông báo 4 tháng để làm như vậy.

Bạn cũng nên sử dụng đánh số phiên bản để bạn có thể nói rằng, ví dụ: "phiên bản 3 sẽ sớm bị khấu hao vì vậy hãy đảm bảo mã của bạn hoạt động với phiên bản 4", v.v ... Bằng cách đó mọi người biết rằng nếu ứng dụng của họ hoạt động với phiên bản 4 sau đó họ đã sẵn sàng cho hoàng hôn.


1

Thông tin bổ sung từ góc quá trình:

  • Giao tiếp với tất cả các bên liên quan : Cung cấp cho các nhóm khác và người tiêu dùng API thông tin rõ ràng và ngắn gọn về lý do từ chối API, chiến lược, kế hoạch và chi tiết lịch trình, ý nghĩa phiên bản và các lựa chọn thay thế, đặt HTTP phù hợp.

  • Kế hoạch và Lịch trình : Trong kế hoạch, bạn nên có các mốc quan trọng và ngày đích để kết thúc khấu hao. Bạn nên yêu cầu người tiêu dùng giống nhau và cung cấp ngày khi họ sẽ từ chối cuộc gọi. Tổ chức một cuộc họp thường xuyên để theo dõi quá trình và hỗ trợ người tiêu dùng.

  • Phiên bản và cung cấp giải pháp thay thế : Việc tạo phiên bản có thể giúp hiển thị các thay đổi đột phá trên các bản phát hành chính và làm cho chiến lược không dùng API.

  • Đặt tiêu đề phản hồi HTTP Sunset : Các tiêu đề HTTP đóng phần kỹ thuật cảnh báo, người tiêu dùng API nên theo dõi loại mã này để hiểu khi nào API bị phản đối.

  • Giám sát trước và sau : Giám sát người tiêu dùng của bạn và cảnh báo cho bất kỳ người tiêu dùng nào vẫn sử dụng API sau một thời gian nhất định là thông tin hữu ích để đảm bảo bạn không bỏ lỡ bất kỳ phần mềm từ bỏ nào.


0

Ngoài các câu trả lời hiện có, bạn nên cung cấp thay thế thả xuống hoặc gói di chuyển khi xóa một cái gì đó, để người dùng của bạn có thể cập nhật mã của họ.

Cố gắng tránh loại bỏ chức năng mà không cung cấp giải pháp thay thế - điều này sẽ khiến một số người dùng của bạn không hài lòng.


Nếu có thể có trong API web của bạn, hãy duy trì các chức năng không dùng nữa, nhưng để chúng trả về một lỗi thông tin, thay vì chỉ vi phạm.
Hỏi về Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.