Webサイトは独自のパブリックAPIを使用する必要がありますか?


31

私はウェブサービスを書き始めており、nodeJSとRESTfulなアプローチで構築しました。

私が収集したものから:

  • 利点は、コードを複製する必要がないことです。
  • 欠点は次のとおりです。
    • パブリックAPIは頻繁に更新されますが、バージョン管理で解決する必要があります
    • サービス固有のキャッシュと最適化を実際に行うことはできません

ベストプラクティスと見なされるものは何ですか?Stack Exchange、Github、Twitterなどのサイトは、クライアント用に独自のAPIを使用していますか?

api 

12
あなた自身のドッグフードを食べることも、あなたの公開APIを改善するためにあなたを駆動する
ベンBrocka

それがAmazonのやり方です。
OliverS

2
OlverSのポイントに追加するには、Google Platforms Rant
Brian

回答:


37

独自のAPIを絶対に使用する必要があります。この概念は、ドッグフーディングとして広く知られており、コードの重複を回避する以外にも多くの利点があります。

  • サイト/製品とAPIコンシューマーが作成する内容(つまり、APIへの期待)間の一貫した動作
  • 別の形式のテスト。
  • 顧客よりも先にAPIのバグを見つけることができるため、解決コストを削減できます。

私はあなたのポイントの1つに反対しますが、APIを頻繁に更新するべきでありませ。時間をかけて、しばらくの間存在するAPIの設計と検証を行います。幸いなことに、この方法でのドッグフーディングはそれを強制します。以前は顧客コードを壊していたはずでしたが、今では独自のコードを壊しています。する必要がある場合、はいバージョン管理は解決策ですが、避けるべきです。


0

何らかの理由で、質問のポスターとしてログインできませんが、それは私でした。私はあなたの答えを受け入れることができません。

しかし、どうしてAPIを更新したくないのでしょうか?新機能の追加、人気のない機能の削除、リファクタリングなどはどうですか?


ねえ。これは彼の答えに対するコメントであるはずです-しかし、コメントするのに十分な担当者がいるとは思いません。とにかく、ポイントは、APIを頻繁に更新しないことです。その場合でも、新しい機能を追加しても問題ありません。既存のコードを壊すことはできません。人気のないものを削除する理由 それらを非推奨にし、人々が非推奨に対応するのに長い時間がかかった後、将来のある時点でそれらを削除します。
マックス

2
APIにメソッドを追加するのは問題ありませんが、既存のAPIを変更すると、そのAPIに依存するコードが壊れてしまうため、悪いです。
ブライアンオークリー

@ stanm87:マックスとブライアンはそれをうまく言いました。APIのコントラクト(つまり、インターフェイスと期待される、動作する動作)を変更しないでください。人々はあなたのAPIを使用し、それを変更するとコードが壊れる場合に依存します。
スティーブンエバーズ

明確にしてくれてありがとう。@マックス私は本当に彼の答えにコメントすることはできません
-stanm87
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.