Web APIはどのように機能しますか?[閉まっている]


17

Facebook、Twitterなどのような多くのWeb APIを聞いたことがあります。これは、サードパーティがデータにアクセスして操作するのに役立ちます。Web APIの仕組みを知りたいです。Web APIの基本は何ですか?

自分のサイトのAPIを作成して、人々がアクセスしたり更新したりできるようにしたい場合は、まず何をする必要がありますか?


1
それが非常に重要だというわけではありませんが、あなたのサイトはどの言語で構築されていますか?
オコド

Facebook Web APIのドキュメントをまだ読んでいますか? developers.facebook.com/docs 読んでいない場合は、なぜですか?読んだことがある場合、具体的な質問はありますか?
S.Lott

わかりました@ S.Lottをします!
ハリッシュクラップ

回答:


23

最も簡単な方法では、URL、パラメーター、およびエフェクトに関する情報を誰でも呼び出して公開できるGET / POSTリクエストのセットを作成します。読み取り専用タスクのGETリクエストと、サーバー上のデータを変更するものに対するPOSTリクエスト

必要に応じて認証システムを追加すると、シンプルなWeb APIが手に入ります。

ウェブAPIは、単にあるインタフェース標準を経由して(サイトなど)お使いのシステムへのアクセスを許可するHTTPリクエストメソッド。データ自体は通常、処理を容易にするために、何らかの標準形式(JSONXMLなど)でラップされます


ここで例の「TextWise」のWeb APIを


OK。JSONまたはXMLを使用するのに最適なdatの形式は??
ハリッシュクラップ

1
JSON-XMLは操作が非常に難しく、JSONよりも利点はありません。XMLでは、終了タグが必要なため、オーバーヘッドが大きくなります。
スラウェク

1
@ハリッシュ。繰り返しますが、それは「あなたの目的/状況に完全に依存する」ものの一つです。JSON形式を好むかもしれませんが、仕事中のシステムの1つでそれを行った場合は、JSONではなくXML解析機能が組み込まれているため、XMLを使用します。これは、コードのメンテナンスが容易になり、他の開発者がコマンドに精通することを意味します。
ダン・マクグラス

1
@ Harish、1つを支持し、最初にそれをリリースすることは良い考えですが、XMLとJSONの両方を提供することはユーザーに役立ちます。
オコド

実際には、XMLおよびJSON gzipを同様のファイルサイズに圧縮します。JSONに徐々に移行する傾向が見られます(JSONはXMLよりも新しい)が、現在両方を提供することは非常に一般的です。JSONはデータの交換に理想的ですが、XMLはドキュメントの交換に理想的です。
ブライアン

5

現在、会社の仮想化プラットフォーム用の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変数のみを受け入れながら、使用する多数の変数を提供します。

メソッドと呼び出しを短く簡潔に保ち、各呼び出しが要求されたデータが後に続く均一な「動作または失敗」応答を返すように設計しています。


2

それは実際には非常に広範な質問です。最も基本的な意味では、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の作成者は形式に同意する傾向があります。可能なすべての形式を理解するのは難しいからです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.