web-dev-qa-db-ja.com

PHPでWeb APIサービスを作成する方法

可能性のある複製:
phpでWebサービスを作成するためにwsdlファイルが必要ですか?

Web APIを作成したい。

私の要件は、顧客が私のウェブサイトのデータベースからデータを挿入/削除できるように作成したいが、顧客が私のサイトに直接ログインしたくないことです。クライアントリクエストを介してWSDLファイルのURLを呼び出して、顧客にレスポンスを返します。

SOAP callまたはNuSOAPの助けを借りてそうすることができると聞きました。

私がこれを達成する方法をステップバイステップで教えてください。

22
ashokostech

基本的に、APIとは何ですか?

データがHTMLフォームからphpコードにどのように移動するかを理解しているなら、APIのすべてを知っていると信じてください。ここでは、フォームについて話すのではなく、それらのフォームによって最後に作成されるURLについて説明します。

APIの種類は何ですか?

Webサービス用に頻繁に使用されるAPIには、SOAPとREST。Googleは、SOAPベースのAPIであり、Yahoo(最近の買収のほとんどはRESTアプローチです。ほとんどの場合、今日出会う「Web 2.0」サービスはおそらくRESTを使用しています。

REST API in PHPデータベースから値を削除するための認証キーを使用する方法は?

データベースのエントリを管理するのに役立つPHPクラス(manage.php)があるとします:

class manage {    private $entryId;    function __construct($entryId) {
        $this->entryId = $entryId;
    }    function deleteEntry() {
        //delete $this->entryId from database
    }}

独自のサーバーでは、次のようにこの機能にアクセスできます。

require_once('manage.php');
$m = new manage(23);
$m->deleteEntry();

私たちにとって十分簡単ですが、サーバーにいない誰かが同じ機能にアクセスできるようにするにはどうすればよいですか?そのために、他の開発者とクラスの間のバッファー(または「インターフェース」)として機能する3番目のファイルを作成します。開発者がクラスの削除機能にアクセスできるようにするために作成できるファイルの例を次に示します。「api/delete.php」に配置します

require_once('manage.php');
if(hasPermission($_POST['api_key']) {
    $m = new manage($_POST['entry_id']);
    $m->deleteEntry();
}

これにより、ユーザーはPOSTリクエストを http://example.com/api/delete.php にapi_keyとentry_idで送信できます。この関数は、データベースへのアクセスが許可されているかどうかを確認する関数を使用してPOST api_key変数をチェックすることを除いて、独自のサーバーで記述したものと非常に似ています。ここに関数(hasPermission)があります。表示されるものに加えて、api_keyに基づいてユーザーのアカウントを見つけ、エラーチェックを行い、(適切なAPIを作成したい場合)適切に提供する必要があります。リクエストの後にフォーマットされた成功またはエラー応答。成功とエラー応答については、少し後で説明します。

優れたAPIを設計する方法とそれが重要な理由

Googleのこのビデオは、私よりもずっとよく説明できると思います。 http://youtu.be/aAb7hSCtvGw ..

参照:

http://en.wikipedia.org/wiki/Representational_state_transfer

http://en.wikipedia.org/wiki/SOAP

http://particletree.com/features/how-to-add-an-api-to-your-web-service/

http://www.webresourcesdepot.com/how-to-create-an-api-10-tutorials/

Google検索結果

注:答えはすべての参照のコンパイルです!!。

54
codersofthedark