介紹
當您構建好自己的cf開發(fā)環(huán)境或基于作者提供的[dockerfile](https://github.com/CandyMi/core_framework/wiki/Docker)構建好容器后并且將指定目錄掛在到```/app/script```目錄后, 就可以開始根據(jù)此篇文檔進行service構建了。 本文假設您已經(jīng)比較了解cf框架目錄結構并且參考過基本的API與cf介紹.
快速開始
默認情況下, cf框架會在當前文件夾下尋找```script/main.lua```文件當做入口文件. 運行用戶指需要完成的初始化與框架初始化后. 則開始進入事件循環(huán)等待請求.
使用者可根據(jù)httpd庫的使用方法, 開始初始化```main.lua```. 以下是一個簡單示例, 為使用者注冊了一個'/api'路由提供測試
local httpd = require "httpd"
local app = httpd:new("App")
app:api('/api', function(content)
return '{"code":200}'
end)
app:listen(nil, 8080)
app:run()
API與USE區(qū)別
API注冊的路由Content-Type為```Application/json```, USE注冊的路由類型為```text/html```.
如果批量注冊API/USE路由?
路由處理方法分為2種: 一種是上述的回調處理函數(shù), 一種是使用```class```庫創(chuàng)建的http對象. 一般來說, 使用class對象結構化更清晰
在項目使用之初, 可能并不需要進行模塊化. 所有文件寫入到一個文件內即可, 這樣方便快速開發(fā)與調試.
但是當項目需求逐漸增多, 與前端同學對接API/前后端分離的后臺API的數(shù)量直線上升. 這樣, 我們的批量路由注冊才能提現(xiàn)出模塊化對項目的重要性.
第一步, 使用者需要編寫批量注冊的路由表(以API路由為例):
--- 首先我們在script文件夾內新建一個文件夾admin;
--- 然后新建一個admin/init.lua的文件, 這個文件內容如下:
return {
{route = '/r1', class = require "admin.r1"},
{route = '/r2', class = require "admin.r2"},
{route = '/r3', class = require "admin.r3"},
}
然后在```scrit/main.lua```文件內添加批量注冊路由, 需要指名路由類型、路由前綴、路由表的文件:
app:group(app.API, '/admin', require 'admin')
最后, 我們需要在```script/admin``` 開始創(chuàng)建在真正的路由表對應的處理函數(shù):
--- r1.lua
local class = require "class"
local r1 = class("r1")
function r1:ctor(content)
end
function r1:get()
return 'this request build-in '..self.__name
end
return r1
--- r2.lua
local class = require "class"
local r2 = class("r2")
function r2:ctor(content)
end
function r2:get()
return 'this request build-in '..self.__name
end
return r2
--- r3.lua
local class = require "class"
local r3 = class("r3")
function r3:ctor(content)
end
function r3:get()
return 'this request build-in '..self.__name
end
return r3
測試一下: ```curl localhost:8080/admin/r1```.
最后
上述所有代碼可以在```script```文件夾內找到.
更多建議: