thinkphp-vue-admin 後臺接口 | 先後端分離解決方案

thinkphp-vue-admin 後臺接口 | 先後端分離解決方案

它一套有thinkphp開發集成性後臺接口,內置權限管理,api響應,psysh等多功能工具

推薦一個thinkphp 權限管理包:php

https://github.com/surest-sky/thinkphp-permissionvue

他的做用git

  • 自帶登陸校驗
  • 快速完成數據格式校驗
  • 自帶權限管理機制
  • 支持權限管理自動生成節點
  • 自帶響應格式處理
  • 支持後端的菜單控制

利用它github

快速搭建基礎的 先後端分離場景下的後臺web

在線地址: http://v-web.surest.cn/sql

帳號: admin
密碼: admin123thinkphp

vue 地址 : https://github.com/surest-sky/thinkphp-vue-admin後端

安裝

git clone https://github.com/surest-sky/think-vue-admin-api.git

cd think-vue-admin-api

composer install

導入 目錄下的 `permission.sql`

初始化權限節點

php think init_permission --action reset

有關應用

psysh

psysh 是什麼: http://vergil.cn/archives/psyshapi

> php think psysh

  \app\common\Example::psysh();
  
  輸出: 2
  
-> php think psysh

    \app\common\Example::init_permission();
    
  輸出: 更新節點完成

自定義驗證器 | validate

具體使用方法不詳說, 大概以下服務器

定義一個驗證器, 繼承 app\common\validate\BaseValidate

驗證數據

$validate = (new CircleValidate())->goCheck();
$data = $validate->validatedData(); # 獲取驗證經過的數據

而後經常使用的正則和一些方法均可以寫到 BaseValidate 中便可

例如經常使用驗證 ids 格式如 1,2,3,4 的數據能夠這樣獲取

# 校驗ids
$validate = (new IdsValidate())->goCheck();
$ids = $validate->getIds();

響應方式

  • $this->successed();

    {

    "msg": "success",
       "code": 200,
       "data": {}

    }

  • $this->internalError();

    {
        "msg": "服務器錯誤",
        "code": 500,
        "data": {}
    }
  • $this->notFond();

    {
        "msg": "未找到",
        "code": 404,
        "data": {}
    }
  • $this->frobidden();

    {
        "msg": "未受權",
        "code": 401,
        "data": {}
    }
  • $this->failed();

    {
        "msg": "受權失敗",
        "code": 403,
        "data": {}
    }

BaseController

use ApiResponse;

繼承 BaseController

使用響應的時候, 直接

$this->successed($list);

具體的可見方法: appcommonTraitsApiResponse

異常處理控制

app.php 中, 咱們接管了異常, 響應格式替換爲咱們的 ApiResponse

具體見方法, app\common\exception\Handler

異常處理控制後, 可定製化異常處理

見: http://surest.cn/archives/85/

簡單說明一下:

handler.php經過傳遞當前拋出異常的 exception 和咱們須要針對化處理的異常進行校驗, 採用的也就是 instanceof 去判斷來自於哪一個異常

這樣作的好處就是, 針對不用的異常進行監控, 並拋出指定的異常錯誤信息 或者 日誌

自定義的異常處理 必須 繼承 CustomExceptionInterface 接口, 經過 showMsg 來處理拋出異常

代碼中, 咱們會發現一個問題, 在 handler.php 中 異常信息是返回的, 官方文檔中有介紹, **使用異常處理接管的函數必須返回一個 response 響應, 因此能夠看到 在 BaseException

設置了 is_anomaly_andling_takeover 就是告訴 ApiResponse 須要返回一個response響應

交流羣

QQ 交流羣

https://s2.ax1x.com/2019/07/23/ek4oCD.jpg

相關文章
相關標籤/搜索