thinkphp5がRESTfulをどのように使用するかを整理して要約する
APIディレクトリを作成します
apiディレクトリにコントローラーと構成ファイルを作成します
以下に示すように:
APIテストコントローラー
<?php
namespace app\api\controller;
use think\Controller;
class Test extends Controller
{
public function index()
{
return [
'status' => 0,
'msg' => 'success'
];
}
//put 需要定义$id
public function update($id = '')
{
$put_data = input('put.');
$data = array(
'id' => $id,
'put_data' => $put_data
);
return $data;
}
//delete 需要定义$id 然后用提交的id值替换
public function delete($id = '')
{
$data = array(
'id' => $id,
);
return $data;
}
//post 需要定义$id
public function save()
{
$post_data = input('post.');
$data = array(
'post_data' => $post_data
);
return $data;
}
}
config.phpで戻り形式を構成します
<?php
return [
//设置返回数据类型为json格式
'default_return_type'=>'json',
];
ルーティングを設定する
thinkphpwu / applicationディレクトリにroute.phpファイルがあります
ルーティングルールを自動的に登録する
__rest__を使用して、ルーティング構成ファイルにリソースルーティング定義を追加します。
return [
// 定义资源路由
'__rest__'=>[
// 指向index模块的blog控制器
'blog'=>'index/blog',
],
// 定义普通路由
'hello/:id'=>'index/hello',
]
設定後、7つのルーティングルールが自動的に登録されます
ロゴ | リクエストの種類 | ルーティングルールを生成する | 対応する操作方法(デフォルト) |
---|---|---|---|
インデックス | 取得する | ブログ | インデックス |
作成する | 取得する | ブログ/作成 | 作成する |
セーブ | 役職 | ブログ | セーブ |
読んだ | 取得する | blog /:id | 読んだ |
編集 | 取得する | blog /:id / edit | 編集 |
更新 | プット | blog /:id | 更新 |
削除 | 削除 | blog /:id | 削除 |
指し示す特定のコントローラーはルーティングアドレスによって決定されます。たとえば、上記の設定はインデックスモジュールのブログコントローラーに対応します。ブログコントローラーが次のURLアクセスをサポートするには、上記の対応する操作メソッドを作成するだけで済みます。
http:// serverName / blog /
http:// serverName / blog / 128
http:// serverName / blog / 28 / edit
Blogコントローラーの対応するメソッドは次のとおりです。
namespace app\index\controller;
class Blog {
public function index(){
}
public function read($id){
}
public function edit($id){
}
}
ルーティングを個別に設定する
具体的なコードは次のとおりです。
<?php
//引用think的路由底层Route类
use think\Route;
//设置路由
//get方式
Route::get('test', 'api/test/index');
//put方式
Route::put('test/:id', 'api/test/update');
//delete方式
Route::delete('test/:id', 'api/test/delete');
//post方式
//Route::post('test', 'api/test/save');
//resource方式 对应7种方式
Route::resource('test', 'api/test');
Route :: resource( 'test'、 'api / test');このメソッドにはPOSTリクエストが含まれ、対応する保存メソッドを自動的に検索します
リクエストを取得
背景設定の内容に戻る
リクエストを入れる
リクエストパスはhttp://app.thinkphpwu.com/test/888で
、888に対応します。これはidを意味し、put_dataは送信したデータであり、バックグラウンドは自社のビジネスに応じて変更できます。
削除リクエスト
リクエストは、削除するIDの値を返すdeleteメソッドです。
ポストリクエスト
一般化されたAPIインターフェースデータのカプセル化
アプリケーションディレクトリの共通関数common.phpファイルにshowメソッドを追加します
/**
* 通用化API接口数据输出
* @param int $status 业务状态码
* @param string $message 信息提示
* @param [] $data 数据
* @param int $httpCode http状态码
* @return array
*/
function show($status, $message, $data = [], $httpCode = 200)
{
$data = [
'status' => $status,
'message' => $message,
'data' => $data,
];
return json($data, $httpCode);
}
フロントエンドに返す必要のある関数でshowメソッドを呼び出します。たとえば、テストコントローラーのsaveメソッドでshowを呼び出します。コードは次のとおりです。
public function save()
{
$post_data = input('post.');
$data = array(
'post_data' => $post_data
);
return show(0, '保存成功!', $data);
}
以下に示すように、postmanリクエストを使用して、返されたデータを取得します。