成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

FastD 最佳實(shí)踐一: 構(gòu)建 API

WalkerXu / 1835人閱讀

摘要:最佳實(shí)踐一構(gòu)建是一個(gè)專(zhuān)門(mén)針對(duì)應(yīng)用層而生的一個(gè)應(yīng)用框架,提供良好的中間件,路由以及支持?jǐn)U展運(yùn)行,從而具體良好的性能條件。手動(dòng)創(chuàng)建添加路由地址調(diào)用完成最第一個(gè)路由。緩存也是一個(gè)前置中間件,使用方式與日常操作保持一致。

FastD 最佳實(shí)踐一: 構(gòu)建 API

FastD 是一個(gè)專(zhuān)門(mén)針對(duì) API 應(yīng)用層而生的一個(gè) PHP 應(yīng)用框架,提供良好的中間件,路由以及支持 swoole 擴(kuò)展運(yùn)行,從而具體良好的性能條件。

創(chuàng)建項(xiàng)目
composer create-project fastd/dobee api -vvv

創(chuàng)建一個(gè)為 API 的項(xiàng)目。

運(yùn)行第一個(gè)程序

進(jìn)入命令行模式

php -S localhost:9876 -t web

訪(fǎng)問(wèn) localhost:9876

{
    "msg":"hello dobee"
}
執(zhí)行流程

點(diǎn)擊: FastD設(shè)計(jì)詳解

實(shí)現(xiàn)第一個(gè)路由
1. 創(chuàng)建"控制器"

通過(guò)命令行

php bin/console controller:create {name}

命令行會(huì)自動(dòng)創(chuàng)建 CURD 多個(gè)操作方法,由開(kāi)發(fā)者手動(dòng)添加操作邏輯。

手動(dòng)創(chuàng)建

MeController.php

 "janhuang"
        ]);
    }
}
2. 添加路由地址
get("/", "WelcomeController@welcome");
route()->get("/hello/{name}", "WelcomeController@sayHello");
route()->get("/who", "MeController@me");
3. 調(diào)用
curl -i http://127.0.0.1:9876/who

response

{
    "name": "janhuang"
}

完成最第一個(gè)路由。

給應(yīng)用添加單元測(cè)試

我仍熱認(rèn)為測(cè)試是一個(gè)非常重要的環(huán)節(jié),也是一個(gè)優(yōu)秀開(kāi)發(fā)者一個(gè)重要品質(zhì)之一。

如果其中涉及數(shù)據(jù)庫(kù)測(cè)試,可以參考: 數(shù)據(jù)庫(kù)測(cè)試

request("GET", "/");
        $response = $this->app->handleRequest($request);
        $this->isSuccessful($response);
    }
}

可以給你的應(yīng)用API添加格式各樣的測(cè)試,來(lái)驗(yàn)證程序的有效性。

給 API 添加公共緩存

何為公共緩存?

公共緩存的靈感來(lái)自于 varnish,當(dāng)用戶(hù)發(fā)起非 GET 請(qǐng)求的時(shí)候,進(jìn)行緩存處理并返回(如果有的話(huà)),其他請(qǐng)求一律穿透,交給底層處理。

緩存也是一個(gè)前置中間件,使用方式與日常操作保持一致。

文檔: 中間件

config/app.php

 [
        // code
        "common.cache" => [FastDMiddlewareCacheMiddleware::class]
    ],
];

config/routes.php

get("/", "WelcomeController@welcome");
route()->get("/hello/{name}", "WelcomeController@sayHello");
route()->get("/who", "MeController@me")->withMiddleware("common.cache");

完成配置后,請(qǐng)求路由地址

curl -i http://localhost:9876/who

HTTP/1.1 200
Host: localhost:9876
Connection: close
X-Powered-By: PHP/7.0.0
Content-Type: application/json; charset=UTF-8
X-Cache: ee4d94f352cb03116b61ce9158720ebf
Expires: Tue, 08 Aug 2017 10:58:21 GMT

會(huì)產(chǎn)生 X-Cache 新的響應(yīng)頭,用于代表緩存生效。

Basic Auth

大部分 API 中,都需要對(duì)請(qǐng)求來(lái)源進(jìn)行一定的鑒權(quán)處理,由于框架已經(jīng)集成了簡(jiǎn)單的 Basic auth,使用方法與上述保持一致。

get("/", "WelcomeController@welcome");
route()->get("/hello/{name}", "WelcomeController@sayHello");
route()->get("/who", "MeController@me")->withMiddleware(["basic.auth", "common.cache"]);
為 API Server 加速

眾所周知,swoole 為 PHP 提供了良好的性能體驗(yàn)和網(wǎng)絡(luò)通信體驗(yàn),而框架中也無(wú)縫整合 swoole,為框架、服務(wù)提供良好體驗(yàn)做了一個(gè)鋪墊,現(xiàn)在,你只需要配置IP、端口、swoole常用配置,即可無(wú)痕啟動(dòng)以 swoole 服務(wù)器,為你的 API Server 進(jìn)行加速處理。

config/server.php


 * @copyright 2016
 *
 * @link      https://www.github.com/janhuang
 * @link      http://www.fast-d.cn/
 */

return [
    "host" => "http://".get_local_ip().":9527",
    "class" => FastDServitizationServerHTTPServer::class,
    "options" => [
        "user" => "nobody",
        "group" => "nogroup",
        "pid_file" => __DIR__ . "/../runtime/pid/" . app()->getName() . ".pid",
        "log_file" => __DIR__ . "/../runtime/logs/" . app()->getName() . ".pid",
        "log_level" => 5,
        "worker_num" => 10,
        "task_worker_num" => 20,
    ],
    "processes" => [

    ],
    "listeners" => [

    ],
];

get_local_ip 函數(shù)為了默認(rèn)或者本地內(nèi)網(wǎng)ip,如果你的API是對(duì)外開(kāi)放的,請(qǐng)修改為您的外網(wǎng)ip或者 0.0.0.0

options 參數(shù)為 swoole 擴(kuò)展配置參數(shù)。請(qǐng)參考: swoole配置

啟動(dòng)
php bin/server start
守護(hù)進(jìn)程
php bin/server start -d
停止
php bin/server stop

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

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

相關(guān)文章

  • FastD 最佳實(shí)踐三: 構(gòu)建API網(wǎng)關(guān)

    摘要:我們需要將業(yè)務(wù)或服務(wù)放置在網(wǎng)關(guān)背后,由網(wǎng)關(guān)統(tǒng)一處理請(qǐng)求入口,本身由多個(gè)入口的處理變成了一個(gè)入口,由網(wǎng)關(guān)進(jìn)行統(tǒng)一調(diào)度。網(wǎng)關(guān)負(fù)責(zé)來(lái)搞這些事情,你只需要知道網(wǎng)關(guān)就好了。 構(gòu)建完成 API 服務(wù),配置中心之后,架構(gòu)圖大致如下: showImg(https://segmentfault.com/img/remote/1460000010676395); 我們?yōu)楹涡枰W(wǎng)關(guān) 引用 別人 的一句話(huà): ...

    CoXie 評(píng)論0 收藏0
  • FastD 最佳實(shí)踐五: 構(gòu)建ELK日志分析

    摘要:點(diǎn)擊前往中文地址先決條件簡(jiǎn)單安裝下載地址下載或者其他都可以。版本處理方案新建格式日志文件。配置日志會(huì)隨著配置進(jìn)行生成,結(jié)果如下忽略上述日志內(nèi)容,程序看得懂即可配置推送到需要根據(jù)業(yè)務(wù)場(chǎng)景進(jìn)行配置,現(xiàn)在顯示最簡(jiǎn)單的配置。 過(guò)去咱們開(kāi)發(fā)中,對(duì)日志這個(gè)環(huán)節(jié)其實(shí)并不太重視,直到有一天,應(yīng)用出現(xiàn)異常,這個(gè)時(shí)候才想起來(lái)日志,但很可惜,為時(shí)已晚。 咱們做運(yùn)維和開(kāi)發(fā),除了救火,還需要防火,因此一些防范的...

    djfml 評(píng)論0 收藏0
  • FastD 最佳實(shí)踐二: 構(gòu)建配置中心

    摘要:過(guò)去專(zhuān)門(mén)做了一篇文檔來(lái)構(gòu)建配置中心,基于的配置中心。環(huán)境要求及構(gòu)建步驟可參考搭建配置中心隨著業(yè)務(wù)增長(zhǎng),部署的機(jī)器可能會(huì)隨著增長(zhǎng),增加配置難度和維護(hù)難度。最終架構(gòu)圖如下無(wú)論擴(kuò)展多少個(gè)業(yè)務(wù)應(yīng)用,僅需要一個(gè)配置中心即可完成多處配置修改。 過(guò)去專(zhuān)門(mén)做了一篇文檔來(lái)構(gòu)建配置中心,基于 zookeeper 的配置中心。 環(huán)境要求及構(gòu)建步驟可參考: QConf搭建配置中心 隨著業(yè)務(wù)增長(zhǎng),部署的機(jī)器可能...

    noONE 評(píng)論0 收藏0
  • FastD 最佳實(shí)踐四: 構(gòu)建系統(tǒng)可視化監(jiān)控

    摘要:的展示非常炫酷,絕對(duì)是運(yùn)維提升逼格的一大利器。另外的可視化功能比強(qiáng)得多,而且以上版本將集成報(bào)警功能。它由寫(xiě)成,著力于高性能地查詢(xún)與存儲(chǔ)時(shí)序型數(shù)據(jù)。被廣泛應(yīng)用于存儲(chǔ)系統(tǒng)的監(jiān)控?cái)?shù)據(jù),行業(yè)的實(shí)時(shí)數(shù)據(jù)等場(chǎng)景。 原有監(jiān)控系統(tǒng) showImg(https://segmentfault.com/img/remote/1460000011082384); 整個(gè)系統(tǒng)以 Graphite (carbon ...

    khlbat 評(píng)論0 收藏0
  • FastD 最佳實(shí)踐六: 為應(yīng)用添加調(diào)用鏈監(jiān)控 Zipkin

    摘要:調(diào)整配置文件在選項(xiàng)中,追加即可。有了以上系統(tǒng)常規(guī)監(jiān)控日志集中分析應(yīng)用調(diào)用鏈監(jiān)控,我們的業(yè)務(wù)就可以變得更加透明,清晰,可控。相關(guān)文章最佳實(shí)踐四構(gòu)建系統(tǒng)可視化監(jiān)控最佳實(shí)踐五構(gòu)建日志分析 zipkin是一個(gè)開(kāi)放源代碼分布式的跟蹤系統(tǒng),由Twitter公司開(kāi)源,它致力于收集服務(wù)的定時(shí)數(shù)據(jù),以解決微服務(wù)架構(gòu)中的延遲問(wèn)題,包括數(shù)據(jù)的收集、存儲(chǔ)、查找和展現(xiàn)。它的理論模型來(lái)自于Google Dappe...

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

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

0條評(píng)論

閱讀需要支付1元查看
<