亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

如何使用MixPHP來開發API接口

2020-03-22 19:14:53
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了關于如何使用MixPHP來開發API接口,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

MixPHP 是一款基于 Swoole 的常駐內存型 PHP 高性能框架,框架的高性能特點非常適合開發 API 接口,而且 MixPHP 非常接近傳統 MVC 框架,所以開發接口時非常簡單。

下面做一個開發 API 接口的簡單實例:

從 articles 表,通過 id 獲取一篇文章。

訪問該接口的 URL:

http://www.e.com/articles/details?id=1

數據庫表結構如下:

CREATE TABLE `articles` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` varchar(255) NOT NULL, `dateline` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
第一步

修改數據庫配置文件,MixPHP 的應用配置文件中,關于數據庫的信息都引用了 common/config/database.php 文件。

5710806-4a17c84d4593b668[1].png

第二步

修改應用配置文件:

修改 Response 組件默認輸出格式為 JSON 格式。

修改 404/500 錯誤輸出格式為 JSON 格式。

1579415720-5b0cc3e20ac7f_articlex[1].png

框架默認的 404/500 響應是網頁,而 API 服務需要響應 JSON 數據,通常其他傳統 MVC 框架需要修改很多地方才可完成這個需求,MixPHP 本身就提供該種配置,只需修改一下配置即可。

MixPHP 的默認 Web 應用中有兩個配置文件,分別為:

main.php : 部署在 mix-httpd 時使用。

main_compatible.php :部署在 Apache/PHP-FPM 時使用。

開發 API 時我們推薦在 Apache/PHP-FPM 下開發,上線再部署至 mix-httpd 即可,反正是無縫切換的。

現在我們修改 response 鍵名下的 defaultFormat 鍵為 mix/http/Error::FORMAT_JSON,如下:

// 響應 response = [ // 類路徑 html' target='_blank'>class = mix/http/compatible/Response , // 默認輸出格式 defaultFormat = mix/http/Response::FORMAT_JSON, // json json = [ // 類路徑 class = mix/http/Json , // jsonp jsonp = [ // 類路徑 class = mix/http/Jsonp , // callback鍵名 name = callback , // xml xml = [ // 類路徑 class = mix/http/Xml ,],

然后修改 main_compatible.php 文件中 error 鍵名下的 format 鍵為 mix/http/Error::FORMAT_JSON,如下:

// 錯誤 error = [ // 類路徑 class = mix/http/Error , // 輸出格式 format = mix/http/Error::FORMAT_JSON,],
第三步

創建控制器:

apps/index/controllers/ArticlesController.php
 ?phpnamespace apps/index/controllers;use mix/facades/Request;use mix/http/Controller;use apps/index/messages/ErrorCode;use apps/index/models/ArticlesForm;class ArticlesController extends Controller public function actionDetails() // 使用模型 $model = new ArticlesForm(); $model- attributes = Request::get(); $model- setScenario( actionDetails  if (!$model- validate()) { return [ code = ErrorCode::INVALID_PARAM]; // 獲取數據 $data = $model- getDetails(); if (!$data) { return [ code = ErrorCode::ERROR_ID_UNFOUND]; // 響應 return [ code = ErrorCode::SUCCESS, data = $data];}

創建錯誤碼類:

apps/index/messages/ErrorCode.php
 ?phpnamespace apps/index/messages;class ErrorCode const SUCCESS = 0; const INVALID_PARAM = 100001; const ERROR_ID_UNFOUND = 200001;}

創建表單驗證模型:

apps/index/models/ArticlesForm.php
 ?phpnamespace apps/index/models;use mix/validators/Validator;use apps/common/models/ArticlesModel;class ArticlesForm extends Validator public $id; // 規則 public function rules() return [ id = [ integer , unsigned = true, maxLength = 10], // 場景 public function scenarios() return [ actionDetails = [ required = [ id ]], // 獲取詳情 public function getDetails() return (new ArticlesModel())- getRowById($this- }

創建數據表模型:

apps/common/models/ArticlesModel.php
 ?phpnamespace apps/common/models;use mix/facades/RDB;class ArticlesModel const TABLE = articles  // 獲取一行數據通過id public function getRowById($id) $sql = SELECT * FROM ` . self::TABLE . ` WHERE id = :id  $row = RDB::createCommand($sql)- bindParams([ id = $id, ])- queryOne(); return $row;}

以上就是全部代碼的編寫。

第四步

使用 Postman 測試,如下:

5710806-80665fe7cbc28b96[1].png

接口開發與測試完成,是不是很簡單呀。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩亚洲激情| 久久久久久久久久久国产| 国产大片精品免费永久看nba| 成人av电影天堂| 91免费精品国偷自产在线| 亚洲第一页自拍| 亚洲国产另类 国产精品国产免费| 日韩中文字幕视频在线| 亚洲国产一区二区三区在线观看| 日韩精品视频在线免费观看| 亚洲91精品在线观看| 91成人在线视频| 欧美精品做受xxx性少妇| 久久久久久久久久国产精品| 黄色一区二区在线观看| 亚洲欧美日韩一区二区三区在线| 日韩成人激情视频| 欧美华人在线视频| 国产在线观看一区二区三区| 欧美一级大胆视频| 亚洲国产精品一区二区久| 久久精品久久久久电影| 国产精国产精品| 亚洲香蕉成视频在线观看| 97涩涩爰在线观看亚洲| 在线观看中文字幕亚洲| 午夜精品久久17c| 欧美激情一区二区三区高清视频| 欧美贵妇videos办公室| 伊人久久综合97精品| 久久最新资源网| 亚洲男人天堂久| 亚洲精品白浆高清久久久久久| 欧美亚洲日本网站| 亚洲视频在线观看视频| 色综合影院在线| 精品国产一区二区三区四区在线观看| 国产69精品99久久久久久宅男| 日韩成人小视频| 国产精品香蕉国产| 欧美高清自拍一区| 精品国产福利视频| 亚洲在线免费观看| 最新日韩中文字幕| 91国产美女在线观看| 欧美黄色www| 亚洲第一网站免费视频| 欧美性猛交xxxx乱大交极品| 日本91av在线播放| 国产精品主播视频| 一区二区三区精品99久久| 668精品在线视频| 在线亚洲国产精品网| 91精品国产91久久久久久吃药| 久久久国产一区| 久久久午夜视频| 韩国欧美亚洲国产| 2018中文字幕一区二区三区| 国产aaa精品| 亚洲国产成人久久综合一区| 96精品视频在线| 久久91超碰青草是什么| 日韩av电影免费观看高清| 亚洲国产精品专区久久| 亚洲va久久久噜噜噜| 亚洲天堂网在线观看| 欧美又大又粗又长| 欧美特级www| 精品久久久精品| 亚洲国产精品成人va在线观看| 亚洲国产精久久久久久久| 欧美丰满少妇xxxx| 精品国产精品三级精品av网址| 欧美xxxwww| 日韩欧美国产成人| 成人福利视频在线观看| 国内外成人免费激情在线视频网站| 亚洲欧美日本另类| 狠狠躁夜夜躁人人爽超碰91| 欧美极品在线视频| 欧洲亚洲妇女av| 中文字幕不卡av| 久久精品视频免费播放| 国产精品久久久久秋霞鲁丝| 91av免费观看91av精品在线| 欧美成人免费va影院高清| 成人性生交xxxxx网站| 欧美激情在线狂野欧美精品| 久久久久久久久久av| 亚洲精品乱码久久久久久按摩观| 日韩电视剧在线观看免费网站| 亚洲无线码在线一区观看| 成人黄色免费在线观看| 欧美另类极品videosbest最新版本| 日韩网站在线观看| 国产精品美乳一区二区免费| www.亚洲成人| 国产精品视频免费观看www| 久久色在线播放| 日韩一区二区精品视频| 久久亚洲精品一区二区| 亚洲欧美在线免费观看| 久久的精品视频| 久久人人爽人人爽爽久久| 91色琪琪电影亚洲精品久久| 国产成人免费av电影| 91久久精品视频| 欧美二区在线播放| 中文字幕日韩电影| 日本一区二区三区四区视频| 亚洲国产精品久久久久久| 91久久精品国产91性色| 2021国产精品视频| 中文字幕亚洲情99在线| 亚洲午夜精品视频| 国产精品www色诱视频| 亚洲欧洲偷拍精品| 国产精品aaaa| 中文字幕免费精品一区| 国产精品一区二区三区毛片淫片| 欧美激情小视频| 欧美成人精品一区| 久久综合国产精品台湾中文娱乐网| 日韩高清免费在线| 国产精品扒开腿做爽爽爽男男| 中文字幕日韩欧美| 国产成人黄色av| 日韩午夜在线视频| 久热精品视频在线观看一区| 清纯唯美亚洲综合| 国产一区二区三区直播精品电影| 亚洲系列中文字幕| 中文字幕av日韩| 日韩国产欧美精品一区二区三区| 欧美国产日韩在线| 国产精品高潮呻吟久久av无限| 庆余年2免费日韩剧观看大牛| 亚洲精品国产综合久久| 黑人巨大精品欧美一区二区免费| 日韩精品高清在线观看| 日韩大陆毛片av| 久久五月天综合| 成人免费视频a| 中文字幕av一区| 日韩欧美成人区| 久久免费观看视频| 精品成人69xx.xyz| 91精品综合视频| 91国产精品91| 国产精品视频大全| 欧美美女18p| 国产亚洲美女精品久久久| 亚洲综合中文字幕在线观看| 91在线网站视频| 91免费视频网站| 久久久999成人| 精品国产一区二区三区久久| 日韩国产高清污视频在线观看| 久久精品国产2020观看福利| 亚洲精品福利资源站| 亚洲jizzjizz日本少妇| 国产精品情侣自拍| 国产精品白丝jk喷水视频一区| 成人免费直播live|