記錄第一個API任務(wù)過程

前提

  1. 下載代碼,確保API運行環(huán)境搭建成功,可以參考Windows 10 配置 Laravel 運行環(huán)境。
  2. 相應(yīng)Table的設(shè)計已經(jīng)完成。
  3. 相應(yīng)的數(shù)據(jù)庫已經(jīng)創(chuàng)建。

編寫數(shù)據(jù)庫遷移(migration)

  1. 首先根據(jù)設(shè)計好的Table在database/migration文件下創(chuàng)建相應(yīng)的php文件,此文件主要用于創(chuàng)建相應(yīng)Table??梢杂妹羁旖輨?chuàng)建:php artisan make:migration table_name

    Create table
  2. 創(chuàng)建后就可以填寫Table中相應(yīng)的數(shù)據(jù)了,此php文件中有up()和down()兩個fuction,up()對應(yīng)創(chuàng)建Table,down()對應(yīng)刪除。具體的填寫可以參考xianyu和miaomiao的代碼,都很簡單,這里貼下自己的:

    up
    down
  3. 接下來就可以運行命令php artisan migrate來創(chuàng)建Table了,運行此命令后去查看相應(yīng)的數(shù)據(jù)庫,可以發(fā)現(xiàn)Table已成功創(chuàng)建

    Table
  4. 關(guān)于數(shù)據(jù)庫遷移的詳細內(nèi)容,可以參考數(shù)據(jù)庫遷移

填充數(shù)據(jù)庫

  1. Table建立好了,可是里面沒有數(shù)據(jù),這時候就需要去填充數(shù)據(jù)庫了。首先,去Entity文件夾下建立每個Table對應(yīng)的Eloquent模型,其中用到了一個belongsTo()方法,是用來建立不同table之間的聯(lián)系的,關(guān)于這一塊,可以參考Eloquent:關(guān)聯(lián)。

    JobModelPath.png
    JobModel.png
  2. 我們填充數(shù)據(jù)使用的是工廠函數(shù),顧名思義,工廠函數(shù)就是像工廠一樣批量產(chǎn)生數(shù)據(jù)的一個函數(shù),不用我們手動一個一個去創(chuàng)建數(shù)據(jù),能節(jié)省很多時間。其代碼在database/factories/ModelFactory.php中,關(guān)于工廠函數(shù)更詳細的介紹可參考模型工廠,下面是我使用到的工廠函數(shù):

    factory.png
  3. 工廠函數(shù)編寫完畢后,需要在database/seeds/DatabaseSeeder.php的run()中對其進行調(diào)用。

    Paste_Image.png
  4. 以上步驟執(zhí)行完后,就可以執(zhí)行命令php artisan db:seed來生成數(shù)據(jù)到數(shù)據(jù)庫中了。

編寫路由

路由在app/Http/routes.php中,注意這里我把路由語句放到了$api->group()中的函數(shù)里面,這是因為需要用到JWT驗證,簡單地說就是需要登錄獲得一個token。關(guān)于JWT用法,可以參考JWT wiki

Route.png

編寫控制器

  1. 上一步中調(diào)用了JobController控制器,接下來我們就需要編寫這個控制器,路徑位于Http\V1_0\Controllers中,其中的區(qū)塊1就是剛才提到的JWT驗證,而區(qū)塊2主要是針對路由中是否含有tech_level_id做的一個判斷處理


    JobController.png
  2. 控制器中調(diào)用了getJob()和getJobByTechLevelID()兩個方法,這兩個方法我們需要在Repositorise中編寫,主要是一些操作數(shù)據(jù)庫的動作,關(guān)于數(shù)據(jù)庫的一些查詢操作,可以參考數(shù)據(jù)庫:查詢構(gòu)造器

    Repositories.png
    Repositories2.png
    Repositories3.png
  3. repository和interface編寫完后還要去Providers\AppServiceProvider.php里面綁定下

    bind.png
  4. 從數(shù)據(jù)庫中取得數(shù)據(jù)后可以直接返回數(shù)據(jù)$jobs,但是為了數(shù)據(jù)顯示得更友好,我們需要對數(shù)據(jù)進行一些轉(zhuǎn)換,這里就用到了轉(zhuǎn)化器Transformer,代碼路徑在Http\V1_0\Transformers\JobTransformer.php中,更詳細的信息可以參考轉(zhuǎn)化器

    transformer.png

測試

  1. 先使用/login/wechat路由來獲取一個token。

    token1.png
    token2.png
  2. 把這個token作為參數(shù)傳遞給我們的Jobs路由

    token3.png
  3. 成功返回數(shù)據(jù)。

    success.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,881評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • 沒有歌能唱到最后 像街沒有盡頭 而你總是孩子氣 活躍在喧囂路口 可你不懂歌的結(jié)尾 就像不懂街的寂寞 總是匆匆路過 ...
    雨聲未竟閱讀 426評論 7 4
  • 我找不到她的那幾年 就在小溪邊摘太陽花 一朵兩朵一直到看見自己長大的影子 她應(yīng)沉浸在變幻的云朵里 于是我錯摘了許多...
    爾音依舊閱讀 236評論 0 3

友情鏈接更多精彩內(nèi)容