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

資訊專欄INFORMATION COLUMN

Laravel從零開發后臺API(一)

selfimpr / 2532人閱讀

摘要:介紹在開發后臺接口現在更多的企業選擇了來開發后臺接口當然和不失為是一種不錯的選擇不過這里就以為例基于框架開發后臺這里也是如果你是從事其他方向想做一些后臺開發都可以去嘗試一下的當然實例項目我會不放在我的上僅供參考地址前期準備當然前提是安裝

介紹

在開發后臺接口現在更多的企業選擇了PHP來開發后臺接口 當然PythonNodeJs不失為是一種不錯的選擇

不過這里就以PHP為例 基于Laravel框架開發后臺API 這里也是如果你是從事其他方向想做一些后臺API開發 都可以去嘗試一下的

當然實例項目我會不放在我的github上僅供參考 @geekGhc

github demo地址 https://github.com/GeekGhc/dingo-api-demo

前期準備

當然前提是安裝PHP的環境 因為PHP7無論是從性能還是以后的推廣度都是首選

所以如果想去繁從簡的話可以安裝PHP的集成環境 這里可以XAMPP 這里給出下載地址

https://www.apachefriends.org/zh_cn/index.html 選擇7.1版本安裝即可

當然安裝過程很簡單 但要保證將PHP設置為環境變量 這樣至少我們才可以使用php命令

安裝結束后 終端執行

$ php --version

查看到對應的版本即可

接下來就是安裝composer 這是PHP的安裝依賴庫 我們可以下載到我們需要的第三方依賴包

這里也給出相應的地址 https://getcomposer.org/doc/00-intro.md#downloading-the-composer-executable

對于不同的平臺 安裝方式肯定不一樣 不過相對來說在windows環境下 可以下載完可執行文件直接安裝即可 安裝系統盤就行

安裝完畢后確保composer依舊在環境變量中 在終端執行

$ composer -V

查看到對應的版本即可

這些關于PHP的安裝完畢之后 那么基本就可以進入到Laravel的安裝

Laravel安裝

如果說沒有接觸過Laravel的話可以這兩種方式其實都是不錯的選擇

1.通過Laravel安裝工具

使用之前的composer下載Laravel安裝包

$ composer global require "laravel/installer"

請確定你已將 ~/.composer/vendor/bin 路徑加到 PATH,只有這樣系統才能找到 laravel 的執行文件

一旦安裝完成,就可以使用 laravel new 命令在指定目錄創建一個新的 Laravel 項目,例如:laravel new blog

2.通過 Composer Create-Project

你也可以通過 Composer 在命令行運行 create-project 命令來安裝 Laravel

$ composer create-project --prefer-dist laravel/laravel blog
Laravel API基本配置

為了后面的演示 這里我創建了一個新的項目

$ laravel new codespace-api

這里的項目名隨意 這樣可以安裝到最近的版本

Sublime或者PHPStrom打開項目 打開.env文件
這里有一小段配置需要改下

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=codespace-api
DB_USERNAME=root
DB_PASSWORD=password

這里的后面信息就是修改我們連接的Mysql數據庫的信息 包括數據庫名 數據庫用戶名和密碼

修改為你本地或者服務器上的數據即可

啟動內置服務器服務

$ php artisan serve
簡單了解Laravel的工作流程

因為這里我們只是作為后臺開發 那么我們必須了解幾下幾點我們是需要學習和掌握的

1.接口的書寫規范和設計規則

2.sql語句的編寫和數據表的設計

3.有關api的用戶認證和token的了解

首先談下第一個就是接口的書寫規范和設計風格 這個其實在阮一峰的一個文章早就談過 盡管會有點爭議 對于學習

restful api的設計 還是很值得參考的

在了解了api的設計風格后 再結合我們平常所使用的第三方的api接口其實設計起來就是這樣

不過接口的具體設計還是得根據客戶端的項目需求而定

對于第二個sql語句的編寫和數據表的設計 這個也就因人而異了 如果有多年的開發經驗 我想一些sql查詢 包括多表關聯都是很好解決的

Laravel中只是語法的不同罷了 當然對于多表關聯 在Laravel會有Eloquent Model對應的關系可以很好的解決 這里只談就用原生的sql語句來編寫我們的數據信息的話

這里可以需要閱讀Laravel 的數據庫操作文檔(給出中文為了更好的說明 可以的話還是看看官方的英文文檔比較好)

這里給出地址 http://d.laravel-china.org/docs/5.3/queries

這里可以找到關于操作數據庫的一些sql語法

Laravel的數據表設計

在Laravel數據表的設計可以對應著Model 也可以多帶帶創建 如果只是專注后臺 可以創建我們需要的表

所有表的設計內容都是在database/migrations下 一開始是為我們創建了userspassword_resets表的

這里我們再去創建一個posts表的話 在項目終端執行

$ php artisan make:model Lesson -m

這樣就可以創建我們所對應的lessons表 在這個migrations里也就是標的遷移文件寫我們的lessons表的字段信息

php?start_inline=1
Schema::create("lessonss", function (Blueprint $table) {
    $table->increments("id");
    $table->string("title");
    $table->text("body");
    $table->boolean("free");
    $table->timestamps();
});

Laravel中我們可以去定義個字段的測試信息 也就是我們的Seeder

databases/factories/ModelFactory.php中加入posts表的字段

$factory->define(AppLesson::class, function (FakerGenerator $faker) {
    return [
        "title" => $faker->sentence,
        "body" => $faker->paragraph,
        "free" => $faker->boolean()
    ];
});

定義完表的結構 那么接下來就是遷移我們的數據表 因為之前已經配置過數據庫的相關信息 所以在項目根目錄

$ php artisan migrate

回到數據庫會看到我們的數據表

再去生成20條測試數據 打開項目的目錄終端打開tinker

$ php artisan thinerk;

指定命名空間

$ namespace App;

生成20條測試數據

$ factory(Lesson::class,20)->create();

回車即可生成20條測試數據 打開數據庫在lessons表就可以看到

為了方便路由處理 我們去生成一個控制器 為了不和應用混淆 我們在App目錄下 新建Api文件夾

并新建ControllersTransformer目錄為了存放我們的控制器和處理字段返回

在Controllers目錄下也新建我們的控制器基類 可以模仿著應用控制器里的


下面的話我們在這里的控制器就可以繼承這個基類

話不多說 生成我們的LessonsController 在命令行執行

$ php artisan make:controller AppApiControllersLessonsController

下面的可能就是集成Dingo apiJwt認證了 如果沒有用過Laravel的也沒有關系 可以結合下面我的博客文章

安裝 dingo api

在composer.json文件里添加

"dingo/api": "1.0.*@dev"

接著在laravel項目的configapp.php去添加服務

"providers" => [
    DingoApiProviderLaravelServiceProvider::class
]

再去生成相應的配置文件

$ php artisan vendor:publish --provider="DingoApiProviderLaravelServiceProvider"

如果需要實現jwt 同樣的也是去安裝頁面 安裝這個package

"require": {
    "tymon/jwt-auth": "0.5.*"
}

添加對應的服務:

"TymonJWTAuthProvidersJWTAuthServiceProvider"

當然也是需要去配置一下他的alias

"JWTAuth" => TymonJWTAuthFacadesJWTAuth::class,
"JWTFactory" => TymonJWTAuthFacadesJWTFactory::class

生成配置文件

$ php artisan vendor:publish --provider="TymonJWTAuthProvidersJWTAuthServiceProvider"

生成一個key

$ php artisan jwt:generate

當然在composer.json添加完依賴包 需要去下載相關的擴展包 即在項目終端執行 composer update

使用

這個時候我們是在開發的環境下 還需對Dingo進行相應的配置 在.env文件里

API_STANDARDS_TREE=vnd

添加前綴

API_PREFIX=api

填寫版本 這個我們之前自己寫測試的時候也是提供的v1以此來區別版本

API_VERSION=v1

開啟Debug模式

API_DEBUG=true

關閉Script模式

API_STRICT=false 

這樣的話我們安裝就算已經完成了 具體的業務部分在另一篇文章 Laravel從零開發后臺API(二)

文章涉及到用戶的登錄注冊 以及我們之前注冊好的Lessson Model的信息獲取

參考我的博客文章

Laravel API開發初探

Laravel API結合Dingo API和JWT

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

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

相關文章

  • Laravel從零開發后臺API(二)

    摘要:之前我們已經準備好了基本的安裝過程現在我們去實現一下具體的業務部分用戶的登錄與注冊對于用戶注冊這對于一款應用來說再正常不過了為了接下來我們的效果我們可以去生成一個即在項目終端執行生成用戶之后我們暫時先不去編輯字段后面我們需要用到時再加返回字 之前我們已經準備好了基本的安裝過程 現在我們去實現一下具體的業務部分 用戶的登錄與注冊 對于用戶注冊 這對于一款應用來說再正常不過了 為了接下來...

    Nekron 評論0 收藏0
  • 后端開發從零個移動應用(后端篇)

    摘要:后端開發的疑惑后端開發最常面對的一個問題性能高并發等等。而到了時代,在方面有了前后端分離概念移動后端更是無力渲染天然前后端分離。 先來上一張前端頁面的效果圖(Vue + Vux + Vuex + Vue-Router)。showImg(https://segmentfault.com/img/remote/1460000010207850); 第一次做gif 沒什么經驗,太大了。加載...

    codergarden 評論0 收藏0
  • 小白的邊學邊寫,個基于laravel的APP接口【API】(

    摘要:前期準備原文地址前言,為什么做以及要做個啥本人姓小名白,不折不扣編程屆小白一名,但是自從大一那會兒接觸到編程這件奇妙的事情,就完完全全的陷入的程序的世界。框架,是我最喜歡的框架了,沒有之一。 前期準備 原文地址前言,為什么做以及要做個啥本人姓小名白,不折不扣編程屆小白一名,但是自從大一那會兒接觸到編程這件奇妙的事情,就完完全全的陷入的程序的世界。這不,最近又開始折騰APP了,話說現在開...

    Nosee 評論0 收藏0

發表評論

0條評論

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