Restful は標準ではなく設計スタイルです。たとえば、インターフェイスは元々次のようなものでした。
http://www.test.com/user/view/id/1
は、ID 1 のユーザー情報を取得することを意味します。 Restful スタイルを使用すると次のようになります:
http://www.test.com/user/1
これを行うことの利点が明確にわかります:
1. プログラマーにとって使いやすい、より簡潔な URL
2. 内部コード構造を公開せず、より安全です
では、このインターフェースを実装するにはどうすればよいでしょうか?まず、/user/1 部分を受け取る必要があります。
$path = $_SERVER['PATH_INFO'];$arr = explode('/',$path);print_r($arr);
次の結果を取得します:
Array( [0] => [1] => User [2] => 1)
パラメーターを取得した後の次の操作は非常に簡単です:
if($arr[1] == 'user'){ $model = new UserModel(); $id = $arr[2]; //读取用户信息 $user_info = $model->find($id); echo json_encode($user_info); }
このようにして、 Restful スタイルの API を実現しました。
次に、従来の方法であるユーザー リストを読み取るためのインターフェイスを実装する方法を見てみましょう:
http://www.test.com/user/list
Restful スタイルを使用すると、より簡潔になります。 :
http://www.test.com/user
ユーザー情報の読み取りとの違いは、ユーザーの後に ID がないため、読み取り部分に基づいていくつかの変更を加えることができることです。
if($arr[1] == 'user'){ $model = new UserModel(); $id = $arr[2]; if($id){ //读取用户信息 $user_info = $model->find($id); echo json_encode($user_info); }else{ //读取用户列表 $user_list = $model->select(); echo json_encode($user_list); } }
これにより、ユーザーリストインターフェイス。
従来の方法でユーザーを追加するためのインターフェイスを実装する方法を見てみましょう:
http://www.test.com/user/add
RESTful スタイル:
http://www.test.com/user
ユーザー リストを読み取るためのインターフェイスは同じですが、どうやって区別しますか?実際、読み取りは GET リクエストであり、追加は POST リクエストであるため、コードは次のように変更できます。 >同じインターフェースを利用可能 HTTPリクエストのメソッドに応じて異なるロジックが実行されます。
if($arr[1] == 'user'){ $model = new UserModel(); $id = $arr[2]; if($id){ //读取用户信息 $user_info = $model->find($id); echo json_encode($user_info); }else{ if(IS_POST){ //增加用户 $res = $model->add($_POST); if($res){ echo 'success'; }else{ echo 'fail'; } }else{ //读取用户列表 $user_list = $model->select(); echo json_encode($user_list); } } }
これは、Restful スタイル API を実装するための中心的なアイデアです。同様に、編集ユーザー インターフェイスと削除ユーザー インターフェイスを実装できます。
リクエストが異なる限り。といった手法が使われており、区別することができます。 PUT リクエストを使用して編集操作を実行し、DELETE リクエストを使用して削除操作を実行できます。具体的なコードは書きませんので、興味のある方はご自身で以下の実装を試してみてください。
http://www.test.com/user/1
ThinkPHP フレームワークも Restful スタイルのサポートを提供しており、原理は同様です。
要約すると、Restful スタイルは単純な URL と HTTP リクエストを使用してインターフェイスを実装します。