45

私は独自の PHP ライブラリを開発しており、API から RESTful Web サービスを呼び出したいと考えています。これは PHP で行うことができますか?もしそうなら、そうする際の基本は何ですか?

4

5 に答える 5

39

REST は HTTP プロトコルの同じメソッドをクライアント サーバー アーキテクチャの設計に適用したものであり、PHP はすでに GET や POST などの HTTP プロトコル リクエストを処理するのに優れています。PHP は、REST サービスの開発を容易にするのに特に適しています。

REST は、既存のものと同じ http パターンのアプリケーションであることを忘れないでください。

したがって、現在、次のようなアプリケーションを持っている場合:

  1. HTMLフォーム
  2. PHP プロセス
  3. テーブル内の HTML 出力

したがって、REST にするには、次のことが必要です。

  1. Web からパラメーターを受け入れます。get または post としてパラメーターを受け取るので、これは簡単です...基本的に同じです。

  2. PHP プロセス

  3. JSONまたはXMLで出力します。それだけです!

    とても簡単です。

ここで難しいのは、生成する API (関数と URL) をプログラマーにとって使いやすいものにすることです。

その場合は、例としてflickr APIを参照することをお勧めします。これは、開発者にとって非常に使いやすく、推測しやすく、優れたドキュメントがあるためです。

API の詳細については、次のプレゼンテーションを参照してください: How to Design a Good API & Why it Matters (Joshua Bloch)

最後に、RESTful API は、必要に応じてhttp プロトコルの PUT および DELETE メソッドも実装する必要があります。

たとえば、API に削除アクションがある場合、そのサービスは http プロトコルから削除メソッドを受け取る必要があります。投稿リクエストの一部としてアクション パラメータを送信するという、より一般的な方法の代わりに。

編集:「Php はデフォルトで残り」を「REST は HTTP プロトコルの同じメソッドをクライアント サーバー アーキテクチャの設計に適用したものであり、PHP は GET や POST などの HTTP プロトコル リクエストを処理するのに非常に優れているため」に置き換えられました。 PHP は、REST サービスの開発を容易にするのに特に適しています。」

また、適切な PUT または DELETE メソッドを実装する必要があるという最終的な注意も追加しました。そのアクションが API にとって意味がある場合です。

于 2009-10-27T03:52:10.043 に答える
18

この記事とフォローアップをご覧になることをお勧めします: http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

あなたの質問は非常にオープンエンドであるため、このチュートリアルが最適な出発点になる可能性があります。

上記のリンクは機能していないため、次のチュートリアルをご覧ください。

http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/

于 2009-10-27T03:50:22.940 に答える
5

PHP ネイティブ SoapServer クラスの REST に相当するクラスを開発しました。

RestServer.php ファイルをインクルードして、次のように使用します。

class Hello
{
  public static function sayHello($name)
  {
    return "Hello, " . $name;
  }
}

$rest = new RestServer(Hello);
$rest->handle();

次に、次のような呼び出しを行うことができます。

http://myserver.com/path/to/api?method=sayHello&name=World

(クエリ文字列でパラメーターが提供される順序は重要ではないことに注意してください。また、パラメーター キー名とメソッド名は大文字と小文字が区別されません。)

于 2012-10-02T19:22:07.083 に答える
4

REST という用語の元のソースに戻っても問題ありません。それが何を意味するのかを確実に理解してください。

于 2009-10-27T03:51:45.857 に答える
4

クライアント側のことを考えているなら、Matt Sukowski の PEST をチェックすることをお勧めします。

リポジトリは GitHub にあります: https://github.com/educoder/pest

このスレッドもチェックしてください: PHP REST クライアント

更新 2013/12/13:
これはライブ オープン ソース プロジェクトです。Matt Sukowsky はこの夏、十分な時間を割くことができないと感じたため、新しい世話人に引き渡しました。それ以来、非常に多くのコミットが行われています。そのため、Pest は PHP で Rest を実行するのにこれまで以上に優れています :)

于 2012-01-23T14:15:32.130 に答える