私は自分自身のPHPライブラリを開発しており、私のAPIからRESTful Webサービスを呼びたいと思います。 PHPでこれを行うことができますか?もしそうなら、基本は何ですか?PHPでRESTを使用できますか?もしそうなら、どのように?
答えて
RESTはHTTPプロトコルの同じメソッドをクライアント/サーバアーキテクチャの設計に適用しているため、PHPはすでにGETやPOSTなどのHTTPプロトコル要求を処理するのに優れています。 PHPは、RESTサービスの開発を容易にするために特に適しています。
RESTは、既に存在する同じhttpパターンのアプリケーションです。だから、
あなたが現在のようなものないアプリケーションがある場合:だから、それはあなたが希望RESTにするために、テーブル内
- HTMLフォーム
- PHPプロセス
- HTML出力
を必要があります:
- パラメータを受け入れるウェブから。 getやpostのようにパラメータを受け取るので簡単です。基本的には同じです。 JSONまたはXMLのいずれかで
- PHPプロセス
出力。そしてそれはそれです!
かなり簡単です。
ここで難しいのは、生成するAPI(プログラマーに優しい)を作成することです。あなたは一例としてflickr APIを見て、私は示唆している場合には
は推測するのは非常に開発者に優しいのは簡単ですし、良いドキュメントを持っています。 APIの詳細情報についてはこのプレゼンテーションを見て:How to Design a Good API & Why it Matters (Joshua Bloch)
最後にRESTfulなAPIもPUTを実装し、あなたが持っていた場合、それは例えば、感覚
を行うとhttpプロトコルのDELETEメソッド必要がありますあなたのAPIの削除アクションは、httpプロトコルからdeleteメソッドを受け取るべきです。ポストリクエストの一部としてアクションパラメータを送信するという、より一般的なものの代わりに。
編集:置き換え「と「PHPは、デフォルトで、残りは」RESTは、クライアント - サーバ・アーキテクチャとPHPの設計にHTTPプロトコルの同法の適用は、HTTPプロトコル要求を処理するために、すでにとても良いですので、 PHPはRESTサービスの開発を容易にするために特に適しています。
さらに、そのアクションがあなたのAPIに合っている場合、適切なPUTメソッドまたはDELETEメソッドを実装すべきであるという最後の注意を追加しました。
-1:申し訳ありませんが、デフォルトではRESTはありません。たとえばRESTでは、POSTリクエストはGETとは非常に異なり、DELETEとPUTもサポートする必要があります。 –
@Jim Ferrans - なぜDELETEをサポートする必要がありますか? –
@elviejo - stackoverflowのURLを見ると、RESTのURLが表示されます。これは疑問符がないので、PHPがデフォルトで行う解析ではありません。 –
あなたはこの記事とフォローアップを見てみたいことがあります。 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/
リンクが壊れています。 – kta
@kaziTanvirAhsan - ありがとう、より良いリンクを入れてください –
はthe original source of the term RESTに戻って、そしてあなたはそれが何を意味するのかを理解することを確認するために傷つけることはできません。
クライアント側のことを考えているなら、Matt SukowskiのPESTをチェックすることをお勧めします。
あなたはGitHubの上のリポジトリを見つける: https://github.com/educoder/pest
はまた、このスレッドをチェックアウト: PHP REST Clients
アップデート2013年12月13日:
これは非常に多くのライブのオープンソースプロジェクト、マットですSukowskyは今夏、新しい世話人に手渡した。それは彼が十分な時間を惜しみなく費やすことができなかったことを感じなかったし、それ以来たくさんのコミットがあった。だから、PestはこれまでにPHPでRestをやったことでこれまで以上に優れています:)
PHPのネイティブSoapServerクラスのRESTに相当するクラスを開発しました。
RestServer.phpファイルを含めて、次のように使用してください。また
http://myserver.com/path/to/api?method=sayHello&name=World
(クエリ文字列で提供されているのparamsを注文するかは重要でないことに注意してください、paramキーの名前だけでなく、:。
class Hello
{
public static function sayHello($name)
{
return "Hello, " . $name;
}
}
$rest = new RestServer(Hello);
$rest->handle();
次に、あなたは、このような電話をかけることができますメソッド名は大文字と小文字を区別しません)。
なぜこのクラスはHTTPプロトコルを区別しないのですか? – Isius
私はもともとそれを使用してアプリでそれをする必要はありませんでした。フォークして改善してください。 –
- 1. sun.security.providerを使用してSHA3-256ハッシュを実行できますか?もしそうなら、どのように?
- 2. ルーターアウトレットと@ViewChild()などを使用できますか?もしそうなら?
- 3. PHPで画像をクッキーに保存できますか?もしそうなら、どうすれば
- 4. どのようにすべてのディレクトリから拒否できますか?それでもPHPのようなスクリプトでファイルにアクセスできますか?
- 5. アンドロイドでウェブサービスのgoogle direction apiを使用できますか?もしそうなら、マップにポリポイントをどのように表示できますか?
- 6. uiautomatorで継承を使用することは可能ですか?もしそうなら、どのように?
- 7. Tomcatは、オーバーロード時にmod_jkのロードバランサに別のワーカーを使用するように指示できますか?もしそうなら、どうですか?
- 8. Spring RESTと複雑なクエリパラメータはどのように使用できますか?
- 9. X-Frame-Optionは、Tomcat 5.5.33のサーバー側で設定できますか?もしそうなら、どのように?
- 10. Xlsxwriterを使用してPythonでExcelシートからデータを読み取ることはできますか?もしそうなら、どのように?
- 11. SunのXMLインスタンスジェネレータ(xmlgen.jar)は引き続き使用できますか?もしそうなら、どこ?
- 12. intをカスタムクラスの型にキャストできますか?もしそうなら、どうですか?
- 13. Texファイルを同等のOrgファイルに変換できますか?もしそうなら、どうですか?
- 14. どのようなロギングスコープをそのまま使用できますか?
- 15. IMacrosもしそうなら、else文はどのように?
- 16. 私のcurl_multi()の使用はまだシリアルですか?もしそうなら、私はどのように並列化できますか?
- 17. Backbone.jsコレクションに属性を設定できますか?もしそうなら、どうですか?
- 18. pythonで.mobiファイルを作成することはできますか?もしそうなら、どうですか?
- 19. gitで集合チェンジセットを表示できますか?もしそうなら、どうですか?
- 20. 行列変換を使用すると、ピクセル[]からのピクセル単位のコピーに影響しますか?もしそうなら、どのように? (Processing/Javaで)
- 21. GPUを使って.NETからAES暗号化を行うことはできますか?もしそうなら、どうですか?ダブリンのトリニティカレッジから
- 22. これはステートマシンの使用例ですか?もしそうなら、どのオープンソースをお勧めしますか?
- 23. どのようにCancelEventArgsのようなイベントを使用できますか?
- 24. C#6ですか? (Elvis op)thread safe?もしそうなら、どうですか?
- 25. どのように私はPHPでtarantoolのキューを使用できますか?
- 26. どのようにそのような配列を定義できますか?
- 27. WCFサービスをRESTモードでどのように使用しますか?
- 28. pygame.font.Fontでどのようなフォントを使用できますか?
- 29. GitHubをどのようなコードで使用できますか?
- 30. スレッドモジュールがPython 3で変更されましたか?そしてもしそうなら、どうですか?
+1:downvoteをオフセットします。 –
私は彼がPUTとDELETEリクエストメソッドを処理することを頼んでいると思うので、無効な質問ではないと思います。 – bart
質問をあなたに残してください。ここで何を証明しようとしていますか?それは43,000以上のビューを持ち、PHP + RESTの5番目のGoogleの結果です。このサイトが意味するものを殺すのを止めなさい - 迷惑な質問。 –