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リクエストを使用して、返されたデータを取得します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/guo_qiangqiang/article/details/112105047