Facebook、Twitterなどのような多くのWeb APIを聞いたことがあります。これは、サードパーティがデータにアクセスして操作するのに役立ちます。Web APIの仕組みを知りたいです。Web APIの基本は何ですか?
自分のサイトのAPIを作成して、人々がアクセスしたり更新したりできるようにしたい場合は、まず何をする必要がありますか?
Facebook、Twitterなどのような多くのWeb APIを聞いたことがあります。これは、サードパーティがデータにアクセスして操作するのに役立ちます。Web APIの仕組みを知りたいです。Web APIの基本は何ですか?
自分のサイトのAPIを作成して、人々がアクセスしたり更新したりできるようにしたい場合は、まず何をする必要がありますか?
回答:
最も簡単な方法では、URL、パラメーター、およびエフェクトに関する情報を誰でも呼び出して公開できるGET / POSTリクエストのセットを作成します。読み取り専用タスクのGETリクエストと、サーバー上のデータを変更するものに対するPOSTリクエスト。
必要に応じて認証システムを追加すると、シンプルなWeb APIが手に入ります。
ウェブAPIは、単にあるインタフェース標準を経由して(サイトなど)お使いのシステムへのアクセスを許可するHTTPリクエストメソッド。データ自体は通常、処理を容易にするために、何らかの標準形式(JSONやXMLなど)でラップされます。
ここで例の「TextWise」のWeb APIを
現在、会社の仮想化プラットフォーム用のAPIを実際に開発しています。いくつかの異なる方法でそれらを試すことができますが、私のお気に入り(そして、人々が理解できる何かを得るための最速のルート)は、単純なHTTP GETリクエストを使用してJSONレスポンスを返すことです。
私のURLは次のようになります。
domain.com/method/call/subcall?key=key&data=something
次に、HTTP GET変数を分類し、呼び出し側が望んでいることを実行します。Stack Exchange API開発のベータユーザーとして登録した最大の理由の1つは、それが非常に大きな学習経験になることを知っていたことであり、実際にそうでした。
通常、2つのJSONエンコードされた配列を返します。1つはresult
、基本的に呼び出しが成功したかどうかを示し、失敗した場合はエラーコード/エラー文字列を返します。もう一方は通常、単に呼び出されdata
、その内容はその特定の呼び出しのドキュメントに記載されています。さらに、GETベースのAPIはテストとデバッグがはるかに簡単です。
SOAP / XMLRPCなど、他の形式がたくさんあります。JSONを選択すると、信じられないほどシンプルで選択の自由が得られます。
たとえば、大量のフィールドを送信する必要があり、大量のGET変数を処理したくない場合は、これを実行できます(PHPの例)
$to_send = base64_encode(json_encode($some_array));
これは、反対側で簡単にデコードされ、APIを介して2〜3個のGET変数のみを受け入れながら、使用する多数の変数を提供します。
メソッドと呼び出しを短く簡潔に保ち、各呼び出しが要求されたデータが後に続く均一な「動作または失敗」応答を返すように設計しています。
それは実際には非常に広範な質問です。最も基本的な意味では、Web APIは、クライアント(Webブラウザーなど)が何らかの種類のHTTP要求をWebサーバーに送信するときに機能します。サーバーはその要求を調べてユーザーが何を望んでいるかを判断し、クライアントが何を望んでいるかを調べるためにデータを何らかの形式(ページなど)で返します。これらは、Web APIに共通する唯一のものです。私はこれがあなたの質問に実際に答えているわけではないことを理解していますが、質問が非常に広範である理由を述べたいと思いました。
クライアントがリクエストをフォーマットする方法、またはサーバーがレスポンスをフォーマットする方法はすべてあります。そのため、クライアントとサーバーは、何らかの意味を理解するために、いくつかの基本的なルールに同意する必要があります。一般的に言って、最近ではこの種のことに使用される非常に一般的なスタイルが2つあります。
リモートプロシージャコール(RPC)
RPCスタイルのAPIには、通常、API全体に対して1つのURLしかありません。あなたがしたいことに関する情報を含むある種のドキュメントをPOSTすることによってそれを呼び出し、サーバーはあなたが望むものを持っているドキュメントを返します。一般的なコンピューティング用語では、要求ドキュメントには通常、関数名といくつかの引数があります。
このスタイルのAPIの標準には、XML-RPCとSOAPが含まれます。これらの標準は、作成している関数呼び出しを記述するために使用できる形式を作成しようとしています。または、API全体を記述することさえできます。
代表的国家移転(REST)
RESTスタイルのAPIでは、名前空間ほどAPIのURLはありません。サーバー、またはサーバー内のフォルダー。多くの異なるオブジェクトが存在し、この名前空間内のすべてのURLが一部になります。 APIの。むしろあなたがAPIを使用することをサーバーに伝えるよりも、URLを使用すると、APIを使用したいサーバー伝える上を。次に、HTTPメソッドと、場合によってはリクエスト本文を使用して、そのオブジェクトに対して何をしたいのかを説明します:GET(すでにあるものを取得する)、POST(新しいものを作成する)、PUT(既にあるものを置き換える)、またはDELETE(すでに存在するものを取り除きます)。使用できる動詞は他にもいくつかありますが、それらが最も一般的です。
これまでのところ、RESTの標準形式については言及していません。理論的には、ほぼすべての形式を使用できます。HTTPはすでに何をしたいのか、何をしたいのかを伝えるために提供しているので、リクエスト本文の形式はほぼ何でもかまいません:作成または置換したいオブジェクトの表現です。しかし、実際には、RESTの作成者は形式に同意する傾向があります。可能なすべての形式を理解するのは難しいからです。