ホームページ > バックエンド開発 > PHPチュートリアル > PHP は Restful スタイル API を実装します

PHP は Restful スタイル API を実装します

WBOY
リリース: 2016-06-20 12:45:53
オリジナル
1365 人が閲覧しました

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 リクエストを使用してインターフェイスを実装します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート