web-dev-qa-db-ja.com

PHPでRESTを使用できますか?

私は独自のPHPライブラリを開発しています。APIからRESTful Webサービスを呼び出したいと思います。これはPHPそうするための基本は?

45
Zeck

RESTはHTTPプロトコルの同じメソッドをクライアント/サーバーアーキテクチャの設計に適用したものであり、PHPはHTTPプロトコルリクエストを処理するのにすでに非常に優れているGETやPOSTなど。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の詳細については、このプレゼンテーションをご覧ください。 優れたAPIを設計する方法と重要な理由(Joshua Bloch)

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

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

Edit:「Php is rest by default」を「Since RESTは同じメソッドのアプリケーションです。クライアント/サーバーアーキテクチャの設計に対するHTTPプロトコルであり、PHPは、GETやPOSTなどのHTTPプロトコルリクエストを処理するのにすでに優れています。PHPは、 RESTサービスを簡単に開発できます。 "

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

39
elviejo79

この記事とフォローアップをご覧ください: 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/

18
James Black

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

(クエリ文字列でパラメータが提供される順序は関係ありません。また、パラメータ名とメソッド名は大文字と小文字を区別しません。)

5
Jake Sankey

用語RESTの元のソース に戻ることを傷つけることはできません。そして、それが何を意味するのかを確実に理解してください。

4
Sixten Otto

あなたが物事のクライアント側について考えているなら、私はMatt SukowskiのPESTをチェックすることをお勧めします。

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

このスレッドもチェックしてください: PHP REST Clients

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