API

这里的API指整个API接口模块,这里仅做部分API功能模块的使用介绍,如果需要查看前端开发和后端开发文档,请查看相对应的文档

流程介绍

FastAdmin的API模块完全遵循ThinkPHP5的开发规范,在此基础上我们在API模块中提供了一个和前台相同的权限验证模块,我们可以方便快捷的控制我们的可访问权限。

FastAdmin的API模块采用默认的路由方式进行匹配,当然我们完全可以自定义我们的路由规则,达到个性化URL接口的目的

基类解析

API的所有功能模块的控制器都是继承于application/common/controller/Api.php这个基类控制器

在基类控制器中我们有定义一些基础属性和通用方法,首先们我看看基础属性

  1. /**
  2. * @var array 前置操作方法列表
  3. */
  4. protected $beforeActionList = [];
  5. /**
  6. * 无需登录的方法,同时也就不需要鉴权了
  7. * @var array
  8. */
  9. protected $noNeedLogin = [];
  10. /**
  11. * 无需鉴权的方法,但需要登录
  12. * @var array
  13. */
  14. protected $noNeedRight = [];
  15. /**
  16. * 权限Auth
  17. * @var Auth
  18. */
  19. protected $auth = null;

其次我们来看下基类的方法

  1. /**
  2. * 加载语言文件
  3. * @param string $name
  4. */
  5. protected function loadlang($name)
  6. {
  7. }
  8. /**
  9. * 操作成功返回的数据
  10. * @param string $msg 提示信息
  11. * @param mixed $data 要返回的数据
  12. * @param int $code 错误码,默认为1
  13. * @param string $type 输出类型
  14. * @param array $header 发送的 Header 信息
  15. */
  16. protected function success($msg = '', $data = null, $code = 1, $type = null, array $header = [])
  17. {
  18. }
  19. /**
  20. * 操作失败返回的数据
  21. * @param string $msg 提示信息
  22. * @param mixed $data 要返回的数据
  23. * @param int $code 错误码,默认为0
  24. * @param string $type 输出类型
  25. * @param array $header 发送的 Header 信息
  26. */
  27. protected function error($msg = '', $data = null, $code = 0, $type = null, array $header = [])
  28. {
  29. }
  30. /**
  31. * 返回封装后的 API 数据到客户端
  32. * @access protected
  33. * @param mixed $msg 提示信息
  34. * @param mixed $data 要返回的数据
  35. * @param int $code 错误码,默认为0
  36. * @param string $type 输出类型,支持json/xml/jsonp
  37. * @param array $header 发送的 Header 信息
  38. * @return void
  39. * @throws HttpResponseException
  40. */
  41. protected function result($msg, $data = null, $code = 0, $type = null, array $header = [])
  42. {
  43. }
  44. /**
  45. * 前置操作
  46. * @access protected
  47. * @param string $method 前置操作方法名
  48. * @param array $options 调用参数 ['only'=>[...]] 或者 ['except'=>[...]]
  49. * @return void
  50. */
  51. protected function beforeAction($method, $options = [])
  52. {
  53. }
  54. /**
  55. * 验证数据
  56. * @access protected
  57. * @param array $data 数据
  58. * @param string|array $validate 验证器名或者验证规则数组
  59. * @param array $message 提示信息
  60. * @param bool $batch 是否批量验证
  61. * @param mixed $callback 回调方法(闭包)
  62. * @return array|string|true
  63. * @throws ValidateException
  64. */
  65. protected function validate($data, $validate, $message = [], $batch = false, $callback = null)
  66. {
  67. }

以上的属性和方法我们都可以通过在当前控制器定义来达到覆盖的目的。

功能模块

会员模块

我们在FastAdmin的API中集成了简单的会员接口,可以进行会员的注册、登录、找回密码、会员中心、修改个人资料、修改密码等操作。

会员模块可用于进行API会员功能开发时使用。此处的会员模块和前台中的会员模块账号是相通的,但他们登录时是不会互相影响的,可以同时登录。

FastAdmin的会员模块有注册几个事件,我们可以在事件中自定义我们的操作。你可以按照以下的方式监听相应的事件行为

  1. //登录成功后的事件
  2. Hook::add('user_login_successed', function ($user) {
  3. });
  4. //注册成功后的事件
  5. Hook::add('user_register_successed', function ($user) {
  6. });
  7. //会员删除后的事件
  8. Hook::add('user_delete_successed', function ($user) {
  9. });
  10. //会员注销后的事件
  11. Hook::add('user_logout_successed', function ($user) {
  12. });

短信模块

我们在FastAdmin的API中集成了简单的短信模块,可以根据相对应的事件进行短信的发送和检测是否正确等功能。

在使用短信模块时请确保已经正确在后台正确安装并启用了第三方短信插件。

公共模块

公共模块一般用于客户端应用初始化时调用,例如APP的版本检测、APP的首屏轮换图等功能。

检测模块

检测模块一般用于检测客户端提交数据的有效性验证,也常用于在前台进行数据录入时的实时有效性校验。