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、返回提示信息

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Android 开发中,封装 API 接口类是一种常见的做法,可以提高代码的复用性和可维护性。以下是一个简单的封装 API 接口类的示例: ```java public class ApiClient { private static final String BASE_URL = "https://api.example.com/"; private static ApiClient instance; private Retrofit retrofit; private ApiClient() { retrofit = new Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build(); } public static synchronized ApiClient getInstance() { if (instance == null) { instance = new ApiClient(); } return instance; } public Call<List<User>> getUsers() { ApiService apiService = retrofit.create(ApiService.class); return apiService.getUsers(); } } ``` 在这个示例中,`ApiClient` 类使用了单例模式,确保只有一个实例存在。`retrofit` 对象用于与远程 API 进行通信,而 `getUsers()` 方法则封装了获取用户列表的 API 接口,并返回一个 Retrofit 的 `Call` 对象,可以在调用时异步获取 API 响应。 在 `ApiClient` 类中,我们还可以封装其他的 API 接口,例如: ```java public Call<User> getUserById(int id) { ApiService apiService = retrofit.create(ApiService.class); return apiService.getUserById(id); } public Call<Void> updateUser(int id, User user) { ApiService apiService = retrofit.create(ApiService.class); return apiService.updateUser(id, user); } ``` 这些封装后的 API 接口可以在应用程序的其他部分中重复使用,从而减少了代码重复和维护成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值