2012-02-29 11 views
1

私はPHPの残りのwebservicesに取り組んでいます。私はそれがフレームワーク(cakephp、zend、Tonic)を使用せずにPHPで残りのwebservicesを作ることができることを知りたいです。誰かが何らかの考えを持っているならば 。私にお知らせください ?フレームワークを使用せずに残りのWebサービスを作成する方法

+0

これは重複していますか?この質問を読んでください:http://stackoverflow.com/questions/359047/php-detecting-request-type-get-post-put-or-delete – SiliconMind

答えて

1

cURLを使用してRESTfulサービスを実装しました。今私たちがフレームワークを使用しなかった唯一の理由は、使用していたPHPのバージョンが本当に古いためです。私たちには、これがどのように行われるべきかを指示したマネージャーもいました。だから、私のアドバイスは、車輪を再発明せずに、あなたのために仕事の大部分をやることになるものと一緒に行くことです。

+0

webサービスを開発するには、どのくらい正確に 'curl 'を使用しますか?あなたはもちろんそれを呼び出すためにそれを使うことができますが、 'curl'はクエリ処理のためだけではありません... – s1lence

+0

彼はフレームワークを使用しないRESTful Webサービスを作る方法を知りたいと思っています。 cURLはすべてのHTTP作業を行うレイヤーで、JSONまたはXMLのいずれかでデータを送受信できます。これにより、RESTfulサービスでいずれかの形式を認識できるようになります(したがって、回答は実際にうまく機能します)。 – Zoidberg

+0

また、RESTful Webサービスでは、GETを使用してデータを取得し、POST(またはPUT)を使用してデータを保存し、DELETEを使用してすべての標準HTTP要求タイプのデータを削除します。繰り返しますが、cURLよりもはるかに多くのフレームワークがあり、絶対に必要でない限り、それらの1つを使用することをお勧めしました – Zoidberg

1

あなたは自分でリクエストを読んで、何らかの処理(あなたのウェブサービスが何をしようとしていても)を行い、答えの表現を返す必要があります。

多くの場合、WebサービスはPUTのようなhttpメソッドを使用します。方法については、hereを参照してください。

回答は多くの場合、JSONまたはxmlの形式です。 PHPには両方の形式の拡張が含まれています。 JSONはこちら、xmlはここをご覧ください。入力処理にこれらのいくつかを使用する必要があるかもしれません。

開発を開始する前に、重要な点は、Webサービスが何をすべきか、どのように呼び出すべきか、返すべき内容を正確に知っていることです。したがって、コードを開始する前に、主にのAPIを定義してください。

+0

cURLはこれに賛辞です。 (cURLを使用して)正しく実行されると、WebサービスでXMLとJSONの両方の要求/応答を受け付けることができます。 – Zoidberg

0

のは、我々はこの

  • API
    • request.php
    • の.htaccess
012のように私たちのアプリケーションのディレクトリ構造を持っているとしましょうこれは、処理するすべての要求は「/ API」で始まる任意のパターンが付属しています

コードの下
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*)$ request.php?_url=$1 [QSA,NC,L] 
</IfModule> 

とAPIディレクトリの下にある編集.htaccessファイルは、私たちの「request.php」に行きます

/API/*

を持つ任意の残りのパターンは、私たちのrequest.phpは

<?php 

session_start(); 

$_url = $_GET['_url']; 


switch ($_url) { 
    case "products" : 
     echo "All Products"; 
     break; 
    case "product" : 
     echo "One Product"; 
     break; 
    case "product/save" : 
     $request_body = file_get_contents('php://input'); 
     $data = json_decode($request_body); 
     echo "Data saved to DB"; 
     break; 
    default : 
     header($_SERVER["SERVER_PROTOCOL"] . "404 Not Found", true, 404); 
} 

のようになります。

関連する問題