国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MixPHP 開發(fā) API 接口簡(jiǎn)單實(shí)例

weizx / 1371人閱讀

摘要:注意這個(gè)是的范例是一款基于的常駐內(nèi)存型高性能框架,框架的高性能特點(diǎn)非常適合開發(fā)接口,而且非常接近傳統(tǒng)框架,所以開發(fā)接口時(shí)非常簡(jiǎn)單。下面做一個(gè)開發(fā)接口的簡(jiǎn)單實(shí)例從表,通過(guò)獲取一篇文章。第四步使用測(cè)試,如下接口開發(fā)與測(cè)試完成,是不是很簡(jiǎn)單呀。

注意:這個(gè)是 MixPHP V1 的范例

MixPHP 是一款基于 Swoole 的常駐內(nèi)存型 PHP 高性能框架,框架的高性能特點(diǎn)非常適合開發(fā) API 接口,而且非常接近傳統(tǒng) MVC 框架,所以開發(fā)接口時(shí)非常簡(jiǎn)單。

下面做一個(gè)開發(fā) API 接口的簡(jiǎn)單實(shí)例:

articles 表,通過(guò) id 獲取一篇文章。

訪問(wèn)該接口的 URL:

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

數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下:

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;
第一步

修改數(shù)據(jù)庫(kù)配置文件,MixPHP 的應(yīng)用配置文件中,關(guān)于數(shù)據(jù)庫(kù)的信息都引用了 common/config/database.php 文件。

第二步

修改應(yīng)用配置文件:

修改 Response 組件默認(rèn)輸出格式為 JSON 格式。

修改 404/500 錯(cuò)誤輸出格式為 JSON 格式。

框架默認(rèn)的 404/500 響應(yīng)是網(wǎng)頁(yè),而 API 服務(wù)需要響應(yīng) JSON 數(shù)據(jù),通常其他傳統(tǒng) MVC 框架需要修改很多地方才可完成這個(gè)需求,MixPHP 本身就提供該種配置,只需修改一下配置即可。

MixPHP 的默認(rèn) HTTP 應(yīng)用中有兩個(gè)配置文件,分別為:

http_permanent.php : 部署在 mix-httpd 的常駐同步模式時(shí)使用。

http_compatible.php :部署在 Apache/PHP-FPM 時(shí)使用。

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

現(xiàn)在我們修改 response 鍵名下的 defaultFormat 鍵為 mixhttpError::FORMAT_JSON,如下:

// 響應(yīng)
"response" => [
    // 類路徑
    "class"         => "mixhttpcompatibleResponse",
    // 默認(rèn)輸出格式
    "defaultFormat" => mixhttpResponse::FORMAT_JSON,
    // json
    "json"          => [
        // 類路徑
        "class" => "mixhttpJson",
    ],
    // jsonp
    "jsonp"         => [
        // 類路徑
        "class" => "mixhttpJsonp",
        // callback鍵名
        "name"  => "callback",
    ],
    // xml
    "xml"           => [
        // 類路徑
        "class" => "mixhttpXml",
    ],
],

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

// 錯(cuò)誤
"error"    => [
    // 類路徑
    "class"  => "mixhttpError",
    // 輸出格式
    "format" => mixhttpError::FORMAT_JSON,
],
第三步

創(chuàng)建控制器:

apps/index/controllers/ArticlesController.php
attributes = Request::get();
        $model->setScenario("actionDetails");
        if (!$model->validate()) {
            return ["code" => ErrorCode::INVALID_PARAM];
        }
        // 獲取數(shù)據(jù)
        $data = $model->getDetails();
        if (!$data) {
            return ["code" => ErrorCode::ERROR_ID_UNFOUND];
        }
        // 響應(yīng)
        return ["code" => ErrorCode::SUCCESS, "data" => $data];
    }

}

創(chuàng)建錯(cuò)誤碼類:

apps/index/messages/ErrorCode.php

創(chuàng)建表單驗(yàn)證模型:

apps/index/models/ArticlesForm.php
 ["integer", "unsigned" => true, "maxLength" => 10],
        ];
    }

    // 場(chǎng)景
    public function scenarios()
    {
        return [
            "actionDetails" => ["required" => ["id"]],
        ];
    }

    // 獲取詳情
    public function getDetails()
    {
        return (new ArticlesModel())->getRowById($this->id);
    }

}

創(chuàng)建數(shù)據(jù)表模型:

apps/common/models/ArticlesModel.php
bindParams([
            "id" => $id,
        ])->queryOne();
        return $row;
    }

}

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

第四步

使用 Postman 測(cè)試,如下:

接口開發(fā)與測(cè)試完成,是不是很簡(jiǎn)單呀。

MixPHP

GitHub: https://github.com/mixstart/m...
官網(wǎng):http://www.mixphp.cn/

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28369.html

相關(guān)文章

  • 使用 mixphp 打造多進(jìn)程異步郵件發(fā)送

    摘要:消費(fèi)者開發(fā)本例我們使用的多進(jìn)程開發(fā)工具來(lái)完成這個(gè)需求,通常使用常駐進(jìn)程來(lái)處理隊(duì)列的消費(fèi),所以我們使用的類型,模式。中進(jìn)程負(fù)責(zé)執(zhí)行郵件發(fā)送任務(wù)。此時(shí)終端將打印成功收到測(cè)試郵件官網(wǎng) 注意:這個(gè)是 MixPHP V1 的范例 郵件發(fā)送是很常見的需求,由于發(fā)送郵件的操作一般是比較耗時(shí)的,所以我們一般采用異步處理來(lái)提升用戶體驗(yàn),而異步通常我們使用消息隊(duì)列來(lái)實(shí)現(xiàn)。 傳統(tǒng) MVC 框架由于缺少多進(jìn)程...

    EdwardUp 評(píng)論0 收藏0
  • 使用 mixphp 處理其他框架 20% 的高并發(fā)部分

    摘要:如何使用優(yōu)化高并發(fā)場(chǎng)景寫庫(kù)或者耗時(shí)計(jì)算在的接口中使用消息隊(duì)列,把要入庫(kù)的數(shù)據(jù)寫入的類型中。高容錯(cuò)子進(jìn)程異常奔潰時(shí),主進(jìn)程將重建子進(jìn)程。高性能多進(jìn)程運(yùn)行,充分利用多個(gè)并行計(jì)算,性能強(qiáng)勁。 經(jīng)常在群里聽到一些朋友問(wèn):TP 的項(xiàng)目怎么遷移到 mixphp 來(lái)處理高并發(fā),我通常都是回復(fù)需要重寫,可是一個(gè)開發(fā)很久的 TP 項(xiàng)目,代碼量巨大,又怎么可能會(huì)花大量時(shí)間成本來(lái)重寫呢? 那么為何我們不嘗試...

    silvertheo 評(píng)論0 收藏0
  • 我為什么要開發(fā)一個(gè) MixPHP 框架

    摘要:異步隊(duì)列消費(fèi)者開發(fā)只提供了模式下運(yùn)行控制器方法,并未提供主進(jìn)程多子進(jìn)程的進(jìn)程模型,并未提供多線程處理。多線程異步隊(duì)列服務(wù)只需寫好控制器方法,然后在配置文件中配置下路由命名空間進(jìn)程線程數(shù)量,就可在模式中啟動(dòng)多進(jìn)程多線程模型的異步隊(duì)列處理程序。 最近業(yè)余時(shí)間一直在開發(fā)ExpressPHP的第二個(gè)版本 MixPHP,今天下班想起之前一個(gè)面試官的問(wèn)題:你為什么還要再造一個(gè)輪子呢?仔細(xì)回想,第一...

    SnaiLiu 評(píng)論0 收藏0
  • MixPHP:基于 Swoole 的常駐內(nèi)存型 PHP 框架

    摘要:框架最新源代碼行數(shù)行,因此可以很容易的改造它,成為你們公司的專屬框架。也不同于其他基于的微服務(wù)框架,只聚焦于微服務(wù)治理,定位于開發(fā)的更多領(lǐng)域,覆蓋從初創(chuàng)到億元級(jí)體量的技術(shù)訴求。的授權(quán)全靠用戶自愿購(gòu)買,詳情 MixPHP是什么 MixPHP 是秉承 普及 PHP 常駐內(nèi)存型解決方案,促進(jìn) PHP 往更后端發(fā)展 的理念而創(chuàng)造,采用 Swoole 擴(kuò)展作為底層引擎,圍繞常駐內(nèi)存的方式而設(shè)計(jì),...

    王晗 評(píng)論0 收藏0
  • swoole+Mixphp+CodeIgniter開發(fā)失蹤兒童信息平臺(tái)

    摘要:寫基于和開發(fā)的失蹤兒童信息平臺(tái)。團(tuán)圓系統(tǒng)的全稱應(yīng)該是公安部?jī)和й櫺畔⒕o急發(fā)布平臺(tái),在新浪微博上有一個(gè)官方的微博賬號(hào),通過(guò)這個(gè)微博賬號(hào)發(fā)布兒童失蹤信息。 這是我在sf上的第一篇文章。寫基于swoole、Mixphp和CodeIgniter開發(fā)的失蹤兒童信息平臺(tái)。 在2017年的時(shí)候,關(guān)注到有一個(gè)團(tuán)圓系統(tǒng),它是公安部專門為了快速擴(kuò)散失蹤兒童消息的平臺(tái),但是網(wǎng)上并沒有找到這個(gè)平臺(tái)的地址。當(dāng)...

    jasperyang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<