私の会社では、データにアクセスして更新するために Web API に分岐し始めています。最初はパートナー向けですが、将来的には一般公開される可能性があります。現時点では、API の外観 (SOAP、REST、RPC など) は完全にオープンであり、まだ何も決定していません。そのため、人々が優れていると考える Web API の例と、あなたがそう考える理由の両方に興味があります。それ。
私が興味を持っているのは、さまざまな言語を使用している人々 (特に .NET、Java、ActionScript、JavaScript など、さまざまなプラットフォームを使用している人々に API を提供する可能性が高い) からの、優れていると思われる Web API に関する意見です。例、そしてあなたが良い経験をしたこと。
私がカバーしたいいくつかのポイント:
SOAP タイプのサービスと REST/RPC スタイルのサービスのどちらが好みですか? プラットフォームをサポートしている人 (.NET、Java など) は SOAP を好み、プラットフォームをサポートしていない言語を使用している人は他の言語を好むと思いますが、その仮定を検証したいと思います。
API が実際に RESTful であるかどうか、または単純な古い RPC スタイルの HTTP GET/POST であるかどうかを気にしますか? もしそうなら、なぜあなたは気にしますか?API が実際に 2 つのうちの 1 つであるかどうかよりも、API がそれ自体を正しく記述している (つまり、RPC スタイルの場合は RESTful であると主張しない) ことの方が重要ですか?
誰がサービスを使用しているかを確認する必要があります。私は、パブリック識別子と、リクエストのパラメーターを検証トークンにハッシュするために使用されるプライベートトークンを使用する Amazon S3 認証を見てきました (これも flickr に似ています)。以前にこのタイプの認証を使用したことがありますか? また、どのように使いこなしましたか? 問題がある (つまり、プラットフォームでサポートされていない) ハッシュ アルゴリズムはありますか? ハッシュを HTTP ヘッダーと URI のどちらで送信しますか?
バージョン管理はどのように処理する必要がありますか? 将来のバージョンを一緒に追加できるようにタイプのサブディレクトリを用意するのは良い考え
/v1/
ですか?それとも、リクエストのペイロードまたはクエリにバージョンを含めるなど、別のことを行いますか? 構築した API のバージョンがサポートされる期間はどのくらいだと思いますか (つまり、v2 が導入された場合、v1 の存続期間にどれくらい期待できますか)。
また、カバーする他の意見やポイントは役に立ちます。
実装している API の実際のタイプについては、意図的にあいまいなままです。人々が良い API と実装メカニズムと考えるものに関する一般的なガイダンスを探しているためです。この投稿とその回答は、より多くの人々に役立ちます。将来。
注: 検索したところ、これに関する一般的な質問が見つかりません。これらはすべて、特定の種類の API に固有のようです。ただし、重複している場合はお知らせください。また、それがコミュニティ wiki である必要がある場合 (回答者は回答の功績を認められるべきだと思うので、私はそれを作成していません)、お知らせください。そうするように変更します。