Bootstrap

Laravel自定义封装Api接口

1、创建统一接口文件ApiResponse.php 

 Trait用法

<?php

namespace App\Helpers\Api;

trait ApiResponse
{

    /**
     * 成功的时候返回结果
     * @param $data 返回数据集合
    */
    public function success($data)
    {
        return $this->apiResponse('200','操作成功',$data);
    }

    /**
     * 失败的时候返回结果
    */
    public function fail($data)
    {
        return $this->apiResponse('500','操作失败',$data=[]);
    }

    /**
     * 直接返回说明
    */
    public function message($message)
    {
        return "$message";
    }


    /**
     * 参数返回
     * @param $code 状态码
     * @param $message 返回说明
     * @param $data 返回数据集合
    */
    public function apiResponse($code, $message, $data)
    {
        $content = [
            'code' => $code,
            'message'  => $message,
            'data' => $data
        ];
        return json_encode($content);
    }

}

2、在app\Http\Api下创建ApiController控制器  接口继承用

<?php

namespace App\Http\Controllers\Api;

use App\Helpers\Api\ApiResponse;     //引用接口方法
use App\Http\Controllers\Controller;


class ApiController extends Controller
{


    use ApiResponse;

    // 其他通用的Api帮助函数

}

3、开始写接口,测试用例StudentController.php 返回数据

<?php


namespace App\Http\Controllers\Api;


use App\Models\Student;


class StudentController extends ApiController
{
    public function students()
    {
        $data = Student::all();
        return $this->success($data);
    }
}

4、写路由,在routes文件夹下的api.php

<?php


use Illuminate\Http\Request;
use \Illuminate\Support\Facades\Route;


Route::namespace('Api')->group(function () {
    Route::get('/students','StudentController@students')->name('student.students');
});

5、测试接口 访问:域名/api/students

6、返回提示信息

;