本系列文章已集結成冊與鐵人賽文章差異內容,有以下幾點:
更新至Laravel 8、基礎的PHP重點筆記、加強製作API流程細節、加入程式設計模式,優化、重構程式碼的部分,並且於書籍前面的章節介紹Git。
讓您從製作第一個簡單的API到優化自己的程式碼,分享我的經驗給您,打造自己的最強大腦API,若有興趣的朋友可以參考看看
此篇文章同步發於個人部落格
今天來優化自己的 API (順便聊聊心情人生),前幾天都是把原本既有的程式碼拆開,現在要來優化API。
今天打算修改的部分希望盡量把原本的不足,寫成符合規範的程式碼!若你懶得看心情分享!請直接跳到下方的
修改原本設計的 URI
單元,馬上實現動手做的精神!
人生難免不如意去年想要參加鐵人賽,但被一些事情影響到自己的心情,實在提不起勁,什麼也都懶得做、懶得用!沒有參加到去年的鐵人賽了
(現在出社會兩年多了!說實在真的沒有比當學生開心好好把握當學生 )。
那時心情比較低落所以看了很多書呀!心理學、正念、生活品質、斷捨離... 嘗試做很多改變。
什麼都試試看!最後成效不佳,覺得自己很廢。得到最大的體悟就是 現在認為的事情不一定是對的事
,因此開始有點不敢動手做,覺得成效不好,做白工的感覺!
最後實在不行,覺得太廢了!跟朋友聊聊,發現如果遇到不同意見的人,可以在自己發表意見時先聽聽對方的想法,多多少少都會感覺得出來他為什麼這麼說的原因,換位思考一下!我覺得這很有幫助~
(雖然一件事情沒有絕對的對或錯!但是總比一直在做你以為對的事情,最後成效不佳好多了!)
現在看一看鐵人賽也快撐到完賽了!雖然不到完美但有很多收穫!
全部都歸咎於開始動手做,不開始就不會有進展,很開心我對於寫程式這方面充滿這種熱情! 哈哈哈xD
朋友跟我說,人生是一個面,工作是個點,我的人生只有工作跟運動,我現在是一條線而已,非常規律、自閉。 (工程師都這樣嗎?)
親情、友情、愛情,我好像都沒有顧好! 沒有像對程式般的熱情,那種撩下去就對了感覺!
如果你是害怕寫程式,撩下去就對了!(自己期許除了程式能力方面外,也有這樣的熱情。)
秉持著撩下去的熱情做做看就對了!沒有一次就寫到完美的Code,必須要有嘗試過的經驗,還有不斷的修正。
廢話不多馬上依照我目前的經驗分享,讓API更好維護,讓程式碼更符合統一規範的過程。
正式上線系統修改變更程式前請思考清楚!
開始優化API像是我們這個送養系統的動物資源的URI /animal
,在前幾天 進階 RESTful API 討論 這篇提到,對於用戶端 請求API的使用者來說 animal
資源不是單一資源,所以 通常 都會使用 複數的形式animals
,雖然RESTful API 設計沒有絕對,但還是要來改一下URI,
api/animal -> api/animals
打開 routes/api.php
幫animal 加上 s
!
//加上s
Route::post('animals/{animal}/like', 'AnimalController@like');
Route::apiResource('animals', 'AnimalController');
太棒了就是這麼簡單,所以你如果已經看到今天了還沒有動手開始做,可以開始試試看。(反正我都有附上程式碼,複製貼上看看吧! )
儲存檔案,因為URI改變了!測試程式提示有錯誤!但我們確實要這樣修改,把URI的資源換成複數形式,所以要修改測試程式!
測試文件!tests/Feature/AnimalTest.php
把該加上s
的地方加上s
就可以囉!直接附上測試通過圖
以後打算開始製作前端的畫面,因為 AnimalController
撰寫的都是API的方法,打算把它放到API資料夾中統整。
原本檔案的結構
修改過後的檔案結構
發現測試程式又跟你說有錯!
app/Http/Controllers/Api/AnimalController.php
//命名空間修改成這樣
namespace App\Http\Controllers\Api;
//並且引入繼承的Controller檔案
use App\Http\Controllers\Controller;
routes/api.php
// 修改一下 AnimalController 的路徑 Api\AnimalController
Route::post('animals/{animal}/like', 'Api\AnimalController@like');
Route::apiResource('animals', 'Api\AnimalController');
又成功打敗錯誤了!
做就對了!人生也是一樣不斷的從經驗中學習,除非你目前很多事情不知道該從哪做起,沉澱自己思考清楚設定一個期限,確定方向馬上動作吧!
為什麼上面要這樣改呢?因為寫程式當下可能知識並不清楚,所以在日後的學習後,希望它可以更好,才會有變更的需求,共勉之 一起想辦法讓程式更好維護吧!
但在這樣修改前,建議要有一定量的測試涵蓋率~不然你可以會後悔~