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

資訊專欄INFORMATION COLUMN

FastD 最佳實踐一: 構建 API

WalkerXu / 1772人閱讀

摘要:最佳實踐一構建是一個專門針對應用層而生的一個應用框架,提供良好的中間件,路由以及支持擴展運行,從而具體良好的性能條件。手動創建添加路由地址調用完成最第一個路由。緩存也是一個前置中間件,使用方式與日常操作保持一致。

FastD 最佳實踐一: 構建 API

FastD 是一個專門針對 API 應用層而生的一個 PHP 應用框架,提供良好的中間件,路由以及支持 swoole 擴展運行,從而具體良好的性能條件。

創建項目
composer create-project fastd/dobee api -vvv

創建一個為 API 的項目。

運行第一個程序

進入命令行模式

php -S localhost:9876 -t web

訪問 localhost:9876

{
    "msg":"hello dobee"
}
執行流程

點擊: FastD設計詳解

實現第一個路由
1. 創建"控制器"

通過命令行

php bin/console controller:create {name}

命令行會自動創建 CURD 多個操作方法,由開發者手動添加操作邏輯。

手動創建

MeController.php

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

response

{
    "name": "janhuang"
}

完成最第一個路由。

給應用添加單元測試

我仍熱認為測試是一個非常重要的環節,也是一個優秀開發者一個重要品質之一。

如果其中涉及數據庫測試,可以參考: 數據庫測試

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

可以給你的應用API添加格式各樣的測試,來驗證程序的有效性。

給 API 添加公共緩存

何為公共緩存?

公共緩存的靈感來自于 varnish,當用戶發起非 GET 請求的時候,進行緩存處理并返回(如果有的話),其他請求一律穿透,交給底層處理。

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

文檔: 中間件

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");

完成配置后,請求路由地址

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

會產生 X-Cache 新的響應頭,用于代表緩存生效。

Basic Auth

大部分 API 中,都需要對請求來源進行一定的鑒權處理,由于框架已經集成了簡單的 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 提供了良好的性能體驗和網絡通信體驗,而框架中也無縫整合 swoole,為框架、服務提供良好體驗做了一個鋪墊,現在,你只需要配置IP、端口、swoole常用配置,即可無痕啟動以 swoole 服務器,為你的 API Server 進行加速處理。

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 函數為了默認或者本地內網ip,如果你的API是對外開放的,請修改為您的外網ip或者 0.0.0.0

options 參數為 swoole 擴展配置參數。請參考: swoole配置

啟動
php bin/server start
守護進程
php bin/server start -d
停止
php bin/server stop

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25611.html

相關文章

  • FastD 最佳實踐三: 構建API網關

    摘要:我們需要將業務或服務放置在網關背后,由網關統一處理請求入口,本身由多個入口的處理變成了一個入口,由網關進行統一調度。網關負責來搞這些事情,你只需要知道網關就好了。 構建完成 API 服務,配置中心之后,架構圖大致如下: showImg(https://segmentfault.com/img/remote/1460000010676395); 我們為何需要網關 引用 別人 的一句話: ...

    CoXie 評論0 收藏0
  • FastD 最佳實踐五: 構建ELK日志分析

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

    djfml 評論0 收藏0
  • FastD 最佳實踐二: 構建配置中心

    摘要:過去專門做了一篇文檔來構建配置中心,基于的配置中心。環境要求及構建步驟可參考搭建配置中心隨著業務增長,部署的機器可能會隨著增長,增加配置難度和維護難度。最終架構圖如下無論擴展多少個業務應用,僅需要一個配置中心即可完成多處配置修改。 過去專門做了一篇文檔來構建配置中心,基于 zookeeper 的配置中心。 環境要求及構建步驟可參考: QConf搭建配置中心 隨著業務增長,部署的機器可能...

    noONE 評論0 收藏0
  • FastD 最佳實踐四: 構建系統可視化監控

    摘要:的展示非常炫酷,絕對是運維提升逼格的一大利器。另外的可視化功能比強得多,而且以上版本將集成報警功能。它由寫成,著力于高性能地查詢與存儲時序型數據。被廣泛應用于存儲系統的監控數據,行業的實時數據等場景。 原有監控系統 showImg(https://segmentfault.com/img/remote/1460000011082384); 整個系統以 Graphite (carbon ...

    khlbat 評論0 收藏0
  • FastD 最佳實踐六: 為應用添加調用鏈監控 Zipkin

    摘要:調整配置文件在選項中,追加即可。有了以上系統常規監控日志集中分析應用調用鏈監控,我們的業務就可以變得更加透明,清晰,可控。相關文章最佳實踐四構建系統可視化監控最佳實踐五構建日志分析 zipkin是一個開放源代碼分布式的跟蹤系統,由Twitter公司開源,它致力于收集服務的定時數據,以解決微服務架構中的延遲問題,包括數據的收集、存儲、查找和展現。它的理論模型來自于Google Dappe...

    jayce 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<