創(chuàng)建API路由 Creating API Endpoints

API Endpoints 這個(gè)沒有辦法翻譯厘擂,就是route的意思甲锡,也有很多人(這個(gè)應(yīng)該指老外或者裝逼者),當(dāng)我們在討論APIs很多人指的意思就是the routes you visit as an endpoint

API的版本GROUP

為了避免你的主程序路由到這個(gè)包的時(shí)候采用它自己的路由,我們就必須新建一個(gè)api路由的對象

$api = app('Dingo\Api\Routing\Router');

然后必須定義version group, 這樣我們可以為不同的版本創(chuàng)建相同的路由褪迟,這樣方便版本管理和開發(fā)
提示: 這里的$api->version可以理解為特殊的$api->group

$api->version('v1', function ($api) {
  
});

如果需要一個(gè)組可以響應(yīng)多個(gè)版本,這樣寫

$api->version(['v1', 'v2'], function ($api) {
  
});

這個(gè)group的用法和laravel自帶的標(biāo)準(zhǔn)group用法一樣弦赖,也可以傳遞數(shù)組作為第二個(gè)參數(shù)

$api->version('v1', ['middleware' => 'auth'], function ($api) {

});

我們的路由還可以分的在細(xì)致一點(diǎn),比如version中嵌套group

$api->version('v1', function ($api) {
    $api->group(['middleware' => 'foo1'], function ($api) {

    })浦辨;

    $api->group(['middleware' => 'foo2'], function ($api) {

    })蹬竖;
});

關(guān)于中間件這個(gè)東西,個(gè)人還是喜歡放在每個(gè)controller中,這樣感覺會(huì)更清楚點(diǎn)币厕,是不是 ???

創(chuàng)建路由

有了上面的版本號(hào)組列另,現(xiàn)在就可以創(chuàng)建endpoints了,通過帶有參數(shù)為$api的閉包函數(shù)旦装,如下:

 $api->version('v1', function ($api) {
    $api->get('users/{id}', 'App\Api\Controllers\UserController@show');
});

上面這樣寫好麻煩页衙,能不能像laravel一樣,在某個(gè)地方把App\Api\Controllers
放在一個(gè)命名空間下阴绢,這樣寫的時(shí)候店乐,就不用寫App\Api\Controllers了,

上面的問題可以這么解決(還沒測試呻袭,不知道對不對):

 $api->version('v1', ['namespace' => 'Api\Controllers'], function ($api) {
    $api->get('users/{id}', 'UsersController@show');
});

//在app\api\controllers\UsersController.php中聲明命名空間為Api\Controllers;

還有就是php artisan make:controller 這個(gè)命令怎么搞眨八??

因?yàn)镋ndpoint以版本號(hào)進(jìn)行分組左电,所以你可以使用同樣的URI為同一Endpoint創(chuàng)建不同的響應(yīng):

$api->version('v1', function ($api) {
    $api->get('users/{id}', 'App\Api\V1\Controllers\UserController@show');
});

$api->version('v2', function ($api) {
    $api->get('users/{id}', 'App\Api\V2\Controllers\UserController@show');
});

從這里可以看出廉侧,dingo推薦的api的Controller的目錄為

app/Api/v1/Controller

//還有
app/Api/v1/Request  (處理middleware)
app/Api/v1/Transfomers

要不要v1目錄,感覺太深了???

路由別名

$api->get('users/{id}', ['as' => 'users.index', 'uses' => 'App\Api\V1\UserController@show']);

我們要生成路由的時(shí)候就可以用這個(gè)別名:

app('Dingo\Api\Routing\UrlGenerator')->version('v1')->route('users.index');

// 必須提供一個(gè)版本號(hào)以便URL可以基于該版本號(hào)生成券腔,同時(shí)伏穆,你可以在不同版本號(hào)中使用同一個(gè)命名路由。

//其實(shí)感覺也沒有什么卵用纷纫,直接xx->version('v1')->route('users/{id}');  不行嗎?陪腌?

控制臺(tái)查看api 路由的命令

$ php artisan api:routes
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辱魁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诗鸭,更是在濱河造成了極大的恐慌染簇,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件强岸,死亡現(xiàn)場離奇詭異锻弓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蝌箍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門青灼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人妓盲,你說我怎么就攤上這事杂拨。” “怎么了悯衬?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵弹沽,是天一觀的道長。 經(jīng)常有香客問我,道長策橘,這世上最難降的妖魔是什么炸渡? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮丽已,結(jié)果婚禮上偶摔,老公的妹妹穿的比我還像新娘。我一直安慰自己促脉,他們只是感情好辰斋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瘸味,像睡著了一般宫仗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旁仿,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天藕夫,我揣著相機(jī)與錄音,去河邊找鬼枯冈。 笑死毅贮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的尘奏。 我是一名探鬼主播滩褥,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼炫加!你這毒婦竟也來了瑰煎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤俗孝,失蹤者是張志新(化名)和其女友劉穎酒甸,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赋铝,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡插勤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了革骨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片农尖。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖苛蒲,靈堂內(nèi)的尸體忽然破棺而出卤橄,到底是詐尸還是另有隱情,我是刑警寧澤臂外,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布窟扑,位于F島的核電站喇颁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嚎货。R本人自食惡果不足惜橘霎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望殖属。 院中可真熱鬧姐叁,春花似錦、人聲如沸洗显。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挠唆。三九已至处窥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間玄组,已是汗流浹背滔驾。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俄讹,地道東北人哆致。 一個(gè)月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像患膛,于是被迫代替她去往敵國和親摊阀。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理剩瓶,服務(wù)發(fā)現(xiàn)驹溃,斷路器,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,826評論 6 342
  • =========================================================...
    lavor閱讀 3,490評論 0 5
  • Swashbuckle.AspNetCore Swagger 使用Asp.net core 建立API.生成漂亮的...
    TooYummyToThrow閱讀 5,180評論 0 1
  • 你為人處世的態(tài)度延曙,一直都是一個(gè)學(xué)生被老師考察的態(tài)度。你從來沒有把自己當(dāng)成主體過亡哄。你害怕搞砸事情枝缔,害怕別人對你不好的...
    孤單一直走閱讀 164評論 0 0