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

資訊專欄INFORMATION COLUMN

Laravel從零開(kāi)發(fā)后臺(tái)API(一)

selfimpr / 2537人閱讀

摘要:介紹在開(kāi)發(fā)后臺(tái)接口現(xiàn)在更多的企業(yè)選擇了來(lái)開(kāi)發(fā)后臺(tái)接口當(dāng)然和不失為是一種不錯(cuò)的選擇不過(guò)這里就以為例基于框架開(kāi)發(fā)后臺(tái)這里也是如果你是從事其他方向想做一些后臺(tái)開(kāi)發(fā)都可以去嘗試一下的當(dāng)然實(shí)例項(xiàng)目我會(huì)不放在我的上僅供參考地址前期準(zhǔn)備當(dāng)然前提是安裝

介紹

在開(kāi)發(fā)后臺(tái)接口現(xiàn)在更多的企業(yè)選擇了PHP來(lái)開(kāi)發(fā)后臺(tái)接口 當(dāng)然PythonNodeJs不失為是一種不錯(cuò)的選擇

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

當(dāng)然實(shí)例項(xiàng)目我會(huì)不放在我的github上僅供參考 @geekGhc

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

前期準(zhǔn)備

當(dāng)然前提是安裝PHP的環(huán)境 因?yàn)?b>PHP7無(wú)論是從性能還是以后的推廣度都是首選

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

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

當(dāng)然安裝過(guò)程很簡(jiǎn)單 但要保證將PHP設(shè)置為環(huán)境變量 這樣至少我們才可以使用php命令

安裝結(jié)束后 終端執(zhí)行

$ php --version

查看到對(duì)應(yīng)的版本即可

接下來(lái)就是安裝composer 這是PHP的安裝依賴庫(kù) 我們可以下載到我們需要的第三方依賴包

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

對(duì)于不同的平臺(tái) 安裝方式肯定不一樣 不過(guò)相對(duì)來(lái)說(shuō)在windows環(huán)境下 可以下載完可執(zhí)行文件直接安裝即可 安裝系統(tǒng)盤(pán)就行

安裝完畢后確保composer依舊在環(huán)境變量中 在終端執(zhí)行

$ composer -V

查看到對(duì)應(yīng)的版本即可

這些關(guān)于PHP的安裝完畢之后 那么基本就可以進(jìn)入到Laravel的安裝

Laravel安裝

如果說(shuō)沒(méi)有接觸過(guò)Laravel的話可以這兩種方式其實(shí)都是不錯(cuò)的選擇

1.通過(guò)Laravel安裝工具

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

$ composer global require "laravel/installer"

請(qǐng)確定你已將 ~/.composer/vendor/bin 路徑加到 PATH,只有這樣系統(tǒng)才能找到 laravel 的執(zhí)行文件

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

2.通過(guò) Composer Create-Project

你也可以通過(guò) Composer 在命令行運(yùn)行 create-project 命令來(lái)安裝 Laravel

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

為了后面的演示 這里我創(chuàng)建了一個(gè)新的項(xiàng)目

$ laravel new codespace-api

這里的項(xiàng)目名隨意 這樣可以安裝到最近的版本

Sublime或者PHPStrom打開(kāi)項(xiàng)目 打開(kāi).env文件
這里有一小段配置需要改下

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

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

修改為你本地或者服務(wù)器上的數(shù)據(jù)即可

啟動(dòng)內(nèi)置服務(wù)器服務(wù)

$ php artisan serve
簡(jiǎn)單了解Laravel的工作流程

因?yàn)檫@里我們只是作為后臺(tái)開(kāi)發(fā) 那么我們必須了解幾下幾點(diǎn)我們是需要學(xué)習(xí)和掌握的

1.接口的書(shū)寫(xiě)規(guī)范和設(shè)計(jì)規(guī)則

2.sql語(yǔ)句的編寫(xiě)和數(shù)據(jù)表的設(shè)計(jì)

3.有關(guān)api的用戶認(rèn)證和token的了解

首先談下第一個(gè)就是接口的書(shū)寫(xiě)規(guī)范和設(shè)計(jì)風(fēng)格 這個(gè)其實(shí)在阮一峰的一個(gè)文章早就談過(guò) 盡管會(huì)有點(diǎn)爭(zhēng)議 對(duì)于學(xué)習(xí)

restful api的設(shè)計(jì) 還是很值得參考的

在了解了api的設(shè)計(jì)風(fēng)格后 再結(jié)合我們平常所使用的第三方的api接口其實(shí)設(shè)計(jì)起來(lái)就是這樣

不過(guò)接口的具體設(shè)計(jì)還是得根據(jù)客戶端的項(xiàng)目需求而定

對(duì)于第二個(gè)sql語(yǔ)句的編寫(xiě)和數(shù)據(jù)表的設(shè)計(jì) 這個(gè)也就因人而異了 如果有多年的開(kāi)發(fā)經(jīng)驗(yàn) 我想一些sql查詢 包括多表關(guān)聯(lián)都是很好解決的

Laravel中只是語(yǔ)法的不同罷了 當(dāng)然對(duì)于多表關(guān)聯(lián) 在Laravel會(huì)有Eloquent Model對(duì)應(yīng)的關(guān)系可以很好的解決 這里只談就用原生的sql語(yǔ)句來(lái)編寫(xiě)我們的數(shù)據(jù)信息的話

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

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

這里可以找到關(guān)于操作數(shù)據(jù)庫(kù)的一些sql語(yǔ)法

Laravel的數(shù)據(jù)表設(shè)計(jì)

在Laravel數(shù)據(jù)表的設(shè)計(jì)可以對(duì)應(yīng)著Model 也可以多帶帶創(chuàng)建 如果只是專注后臺(tái) 可以創(chuàng)建我們需要的表

所有表的設(shè)計(jì)內(nèi)容都是在database/migrations下 一開(kāi)始是為我們創(chuàng)建了userspassword_resets表的

這里我們?cè)偃?chuàng)建一個(gè)posts表的話 在項(xiàng)目終端執(zhí)行

$ php artisan make:model Lesson -m

這樣就可以創(chuàng)建我們所對(duì)應(yīng)的lessons表 在這個(gè)migrations里也就是標(biāo)的遷移文件寫(xiě)我們的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中我們可以去定義個(gè)字段的測(cè)試信息 也就是我們的Seeder

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

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

定義完表的結(jié)構(gòu) 那么接下來(lái)就是遷移我們的數(shù)據(jù)表 因?yàn)橹耙呀?jīng)配置過(guò)數(shù)據(jù)庫(kù)的相關(guān)信息 所以在項(xiàng)目根目錄

$ php artisan migrate

回到數(shù)據(jù)庫(kù)會(huì)看到我們的數(shù)據(jù)表

再去生成20條測(cè)試數(shù)據(jù) 打開(kāi)項(xiàng)目的目錄終端打開(kāi)tinker

$ php artisan thinerk;

指定命名空間

$ namespace App;

生成20條測(cè)試數(shù)據(jù)

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

回車即可生成20條測(cè)試數(shù)據(jù) 打開(kāi)數(shù)據(jù)庫(kù)在lessons表就可以看到

為了方便路由處理 我們?nèi)ド梢粋€(gè)控制器 為了不和應(yīng)用混淆 我們?cè)?b>App目錄下 新建Api文件夾

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

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


下面的話我們?cè)谶@里的控制器就可以繼承這個(gè)基類

話不多說(shuō) 生成我們的LessonsController 在命令行執(zhí)行

$ php artisan make:controller AppApiControllersLessonsController

下面的可能就是集成Dingo apiJwt認(rèn)證了 如果沒(méi)有用過(guò)Laravel的也沒(méi)有關(guān)系 可以結(jié)合下面我的博客文章

安裝 dingo api

在composer.json文件里添加

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

接著在laravel項(xiàng)目的configapp.php去添加服務(wù)

"providers" => [
    DingoApiProviderLaravelServiceProvider::class
]

再去生成相應(yīng)的配置文件

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

如果需要實(shí)現(xiàn)jwt 同樣的也是去安裝頁(yè)面 安裝這個(gè)package

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

添加對(duì)應(yīng)的服務(wù):

"TymonJWTAuthProvidersJWTAuthServiceProvider"

當(dāng)然也是需要去配置一下他的alias

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

生成配置文件

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

生成一個(gè)key

$ php artisan jwt:generate

當(dāng)然在composer.json添加完依賴包 需要去下載相關(guān)的擴(kuò)展包 即在項(xiàng)目終端執(zhí)行 composer update

使用

這個(gè)時(shí)候我們是在開(kāi)發(fā)的環(huán)境下 還需對(duì)Dingo進(jìn)行相應(yīng)的配置 在.env文件里

API_STANDARDS_TREE=vnd

添加前綴

API_PREFIX=api

填寫(xiě)版本 這個(gè)我們之前自己寫(xiě)測(cè)試的時(shí)候也是提供的v1以此來(lái)區(qū)別版本

API_VERSION=v1

開(kāi)啟Debug模式

API_DEBUG=true

關(guān)閉Script模式

API_STRICT=false 

這樣的話我們安裝就算已經(jīng)完成了 具體的業(yè)務(wù)部分在另一篇文章 Laravel從零開(kāi)發(fā)后臺(tái)API(二)

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

參考我的博客文章

Laravel API開(kāi)發(fā)初探

Laravel API結(jié)合Dingo API和JWT

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/25586.html

相關(guān)文章

  • Laravel從零開(kāi)發(fā)后臺(tái)API(二)

    摘要:之前我們已經(jīng)準(zhǔn)備好了基本的安裝過(guò)程現(xiàn)在我們?nèi)?shí)現(xiàn)一下具體的業(yè)務(wù)部分用戶的登錄與注冊(cè)對(duì)于用戶注冊(cè)這對(duì)于一款應(yīng)用來(lái)說(shuō)再正常不過(guò)了為了接下來(lái)我們的效果我們可以去生成一個(gè)即在項(xiàng)目終端執(zhí)行生成用戶之后我們暫時(shí)先不去編輯字段后面我們需要用到時(shí)再加返回字 之前我們已經(jīng)準(zhǔn)備好了基本的安裝過(guò)程 現(xiàn)在我們?nèi)?shí)現(xiàn)一下具體的業(yè)務(wù)部分 用戶的登錄與注冊(cè) 對(duì)于用戶注冊(cè) 這對(duì)于一款應(yīng)用來(lái)說(shuō)再正常不過(guò)了 為了接下來(lái)...

    Nekron 評(píng)論0 收藏0
  • 后端開(kāi)發(fā)從零個(gè)移動(dòng)應(yīng)用(后端篇)

    摘要:后端開(kāi)發(fā)的疑惑后端開(kāi)發(fā)最常面對(duì)的一個(gè)問(wèn)題性能高并發(fā)等等。而到了時(shí)代,在方面有了前后端分離概念移動(dòng)后端更是無(wú)力渲染天然前后端分離。 先來(lái)上一張前端頁(yè)面的效果圖(Vue + Vux + Vuex + Vue-Router)。showImg(https://segmentfault.com/img/remote/1460000010207850); 第一次做gif 沒(méi)什么經(jīng)驗(yàn),太大了。加載...

    codergarden 評(píng)論0 收藏0
  • 小白的邊學(xué)邊寫(xiě),個(gè)基于laravel的APP接口【API】(

    摘要:前期準(zhǔn)備原文地址前言,為什么做以及要做個(gè)啥本人姓小名白,不折不扣編程屆小白一名,但是自從大一那會(huì)兒接觸到編程這件奇妙的事情,就完完全全的陷入的程序的世界??蚣埽俏易钕矚g的框架了,沒(méi)有之一。 前期準(zhǔn)備 原文地址前言,為什么做以及要做個(gè)啥本人姓小名白,不折不扣編程屆小白一名,但是自從大一那會(huì)兒接觸到編程這件奇妙的事情,就完完全全的陷入的程序的世界。這不,最近又開(kāi)始折騰APP了,話說(shuō)現(xiàn)在開(kāi)...

    Nosee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<