Một trang web có nên sử dụng API công khai của riêng mình không?


31

Tôi đang bắt đầu viết một dịch vụ web và tôi đã xây dựng với nodeJS và cách tiếp cận RESTfulish.

Từ những gì tôi thu thập được:

  • Ưu điểm là bạn không phải sao chép mã.
  • Những bất lợi là bạn:
    • sẽ cập nhật API công khai thường xuyên, nhưng sẽ được giải quyết bằng phiên bản
    • thực sự không thể làm cho dịch vụ lưu trữ và tối ưu hóa cụ thể

Điều gì được coi là thực hành tốt nhất? Các trang web như Stack Exchange, Github, Twitter, v.v có sử dụng API riêng cho khách hàng của họ không?

api 

12
Ăn thức ăn cho chó của riêng bạn cũng sẽ thúc đẩy bạn cải thiện API công khai của mình
Ben Brocka

Đó là cách Amazon làm điều đó.
OliverS

2
Để thêm vào điểm của OlverS, hãy xem Google Platforms Rant
Brian

Câu trả lời:


37

Bạn hoàn toàn nên sử dụng API của riêng bạn. Khái niệm này được biết đến rộng rãi là dogfooding và nó có nhiều lợi ích ngoài việc tránh việc sao chép mã.

  • Hành vi nhất quán giữa trang web / sản phẩm của bạn và những gì người tiêu dùng API sẽ viết (nghĩa là những kỳ vọng của họ về API của bạn)
  • Một hình thức kiểm tra khác.
  • Bạn có thể và sẽ tìm thấy các lỗi trong API trước khi khách hàng của bạn thực hiện, khiến cho việc giải quyết của họ tốn ít chi phí hơn.

Mặc dù tôi sẽ tranh luận với một trong những điểm của bạn: bạn không nên cập nhật API thường xuyên. Dành thời gian để kiến ​​trúc sư và chứng minh một API sẽ tồn tại trong một thời gian. May mắn thay, dogfooding theo cách này sẽ thực thi điều đó. Nơi mà trước đây bạn đã phá mã khách hàng, giờ bạn sẽ phá mã của chính mình. Khi bạn phải , có phiên bản là một giải pháp, nhưng nó nên được tránh.


0

vì một số lý do, nó sẽ không cho phép tôi đăng nhập với tư cách là người đăng câu hỏi, nhưng đó là tôi. Tôi không thể chấp nhận câu trả lời của bạn, ước gì tôi có thể, nó rất có ý nghĩa.

Tuy nhiên, làm thế nào bạn có thể không muốn cập nhật API của mình? Còn việc thêm các tính năng mới, loại bỏ các tính năng không phổ biến, tái cấu trúc, v.v?


Chào. Đây phải là một nhận xét về câu trả lời của anh ấy - nhưng tôi không nghĩ bạn có đủ đại diện để bình luận. Dù sao đi nữa, vấn đề là bạn không nên cập nhật API thường xuyên . Và thậm chí sau đó, việc thêm các tính năng mới không có vấn đề gì - nó không thể phá vỡ mã hiện có. Tại sao loại bỏ những người không phổ biến? Làm cho họ không được chấp nhận và đôi khi loại bỏ trong tương lai sau khi mọi người đã có một thời gian dài để đáp ứng với sự phản đối.
Tối đa

2
Thêm phương thức vào API là ổn, thay đổi API hiện tại là không tốt vì nó sẽ phá vỡ bất kỳ mã nào phụ thuộc vào API.
Bryan Oakley

@ stanm87: Max và Bryan nói tốt. Bạn nên tránh thay đổi hợp đồng API của mình (nghĩa là giao diện và hành vi, hoạt động, dự kiến). Mọi người sẽ phụ thuộc vào việc họ sẽ sử dụng API của bạn hay không và nếu bạn thay đổi, nó sẽ phá vỡ mã của họ.
Steven Evers

cảm ơn rất nhiều vì đã làm rõ @Max Tôi thực sự không thể nhận xét về câu trả lời của anh ấy
stanm87
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.