摘要:介紹在開發后臺接口現在更多的企業選擇了來開發后臺接口當然和不失為是一種不錯的選擇不過這里就以為例基于框架開發后臺這里也是如果你是從事其他方向想做一些后臺開發都可以去嘗試一下的當然實例項目我會不放在我的上僅供參考地址前期準備當然前提是安裝
介紹
在開發后臺接口現在更多的企業選擇了PHP來開發后臺接口 當然Python和NodeJs不失為是一種不錯的選擇
不過這里就以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 blogLaravel 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下 一開始是為我們創建了users和password_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文件夾
并新建Controllers和Transformer目錄為了存放我們的控制器和處理字段返回
在Controllers目錄下也新建我們的控制器基類 可以模仿著應用控制器里的
下面的話我們在這里的控制器就可以繼承這個基類
話不多說 生成我們的LessonsController 在命令行執行
$ php artisan make:controller AppApiControllersLessonsController下面的可能就是集成Dingo api和Jwt認證了 如果沒有用過Laravel的也沒有關系 可以結合下面我的博客文章
安裝 dingo api在composer.json文件里添加
"dingo/api": "1.0.*@dev"接著在laravel項目的config的app.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
摘要:之前我們已經準備好了基本的安裝過程現在我們去實現一下具體的業務部分用戶的登錄與注冊對于用戶注冊這對于一款應用來說再正常不過了為了接下來我們的效果我們可以去生成一個即在項目終端執行生成用戶之后我們暫時先不去編輯字段后面我們需要用到時再加返回字 之前我們已經準備好了基本的安裝過程 現在我們去實現一下具體的業務部分 用戶的登錄與注冊 對于用戶注冊 這對于一款應用來說再正常不過了 為了接下來...
摘要:后端開發的疑惑后端開發最常面對的一個問題性能高并發等等。而到了時代,在方面有了前后端分離概念移動后端更是無力渲染天然前后端分離。 先來上一張前端頁面的效果圖(Vue + Vux + Vuex + Vue-Router)。showImg(https://segmentfault.com/img/remote/1460000010207850); 第一次做gif 沒什么經驗,太大了。加載...
摘要:前期準備原文地址前言,為什么做以及要做個啥本人姓小名白,不折不扣編程屆小白一名,但是自從大一那會兒接觸到編程這件奇妙的事情,就完完全全的陷入的程序的世界。框架,是我最喜歡的框架了,沒有之一。 前期準備 原文地址前言,為什么做以及要做個啥本人姓小名白,不折不扣編程屆小白一名,但是自從大一那會兒接觸到編程這件奇妙的事情,就完完全全的陷入的程序的世界。這不,最近又開始折騰APP了,話說現在開...
閱讀 2758·2021-11-22 13:54
閱讀 2695·2021-10-14 09:42
閱讀 4027·2021-09-28 09:47
閱讀 2168·2021-09-03 10:28
閱讀 1210·2021-07-26 23:38
閱讀 2562·2019-08-30 15:54
閱讀 2644·2019-08-29 16:35
閱讀 1433·2019-08-29 15:42