使用Laravel 8 PHP主流框架打造RESTful API(iT邦幫忙鐵人賽系列書) (電子書)

使用Laravel 8 PHP主流框架打造RESTful API(iT邦幫忙鐵人賽系列書) (電子書) pdf epub mobi txt 电子书 下载 2025

王盛立
图书标签:
  • Laravel
  • PHP
  • RESTful API
  • Web API
  • iT邦幫忙
  • 鐵人賽
  • 框架
  • 開發
  • 電子書
  • 後端開發
想要找书就要到 小特书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

  全台第一本 Laravel 8!

  手把手的教學,立馬擁有寫程式的一技之長!
  完整的規劃,學習如何一步一步打造 API

  ✦入門PHP基礎、物件導向、開始使用 Laravel。
  ✦使用 Laravel 打造 RESTful API。
  ✦學會如何重構優化 API 以及大型系統設計的正確思路。

  本書改編自第11屆iT邦幫忙鐵人賽 Modern Web 組優選網路系列文章---《使用 Laravel 打造 RESTful API》,適用目前最新版 Laravel 8 的版本,使用簡單易懂的方式從如何使用 PHP 以及 Laravel 框架開始到進階學習設計模式,完成一個 RESTful API系統,這本書將帶給您一套基礎職前訓練。

  API 可以把它想像成網路世界的郵差或餐廳的服務生,跟服務生說我要點一份蝦仁炒飯,服務生將開始一連串的動作,跟客人確認餐點、送單、等待廚師完成餐點、端到客人桌上,客人只需要跟服務生說我要蝦仁炒飯這幾個字,這就是 API,給需要的資料,等待結果回應,目前很多的應用程式像是聊天機器人、開放銀行或是使用 Facebook 帳號登入、註冊其他的網站...這些功能都要使用到 API 來溝通,未來5G物聯網的來臨,懂得API技術,勢必是必要的技能。

  ❄本書建議訓練流程

  起始➔實作➔優化

  起始:基本 PHP,結合第二專長
  ✦PHP 基礎入門、物件導向設計模式。
  ✦開始使用 Laravel PHP 框架。
  ✦發現有興趣的議題結合 API 系統規劃。

  實作:完成一個 RESTful API 的內容管理系統
  ✦新增、刪除、修改、查詢 RESTful API 實作教學。
  ✦輸入表單驗證,擁有安全的輸入資料。
  ✦統一輸出回應的格式。
  ✦身分驗證、權限分組。

  優化:學會如何寫出具有一定品質的程式碼
  ✦重構的評估、功能測試、開始重構。
  ✦完成的 API 尚有不足的地方分享作者的重構經驗。
  ✦自動產生 API 文件。
现代Web开发实战:基于主流PHP框架构建高性能RESTful API 本书面向对构建健壮、可扩展、高性能API有实际需求的开发者,旨在提供一套系统化、实战驱动的方法论,彻底掌握当前PHP生态中最主流的框架及其最佳实践。 在这个API驱动的时代,无论是移动应用、单页前端(SPA)还是微服务架构,都离不开稳定可靠的后端服务支撑。本书将带领读者深入探索如何利用业界公认的成熟技术栈,从零开始构建符合现代设计原则的RESTful API服务。 第一部分:夯实基础与架构选型 本部分将首先确立现代API开发的基石,帮助读者理解为何选择特定的技术栈,以及如何从项目伊始就进行合理的架构规划。 1. 深入理解RESTful架构的核心原则: 我们将详细剖析Roy Fielding定义的REST约束,不仅仅停留在CRUD操作上,更会探讨幂等性、无状态性、资源定位URI的设计艺术,以及如何有效地使用HTTP动词和状态码来传达API的行为和结果。如何设计出清晰、版本化(Versioning)的URL结构,确保API的长期可维护性。 2. PHP生态现状与框架选择的权衡: 当前PHP生态中不乏优秀的框架,本书将聚焦于当前企业级应用中最常用、社区支持最活跃的框架。我们将对比不同框架在性能、学习曲线、生态丰富度和企业采用率上的差异,帮助读者理解当前选择的合理性。 3. 现代开发环境的搭建与版本控制最佳实践: 高效的开发始于稳定的环境。本书将指导读者使用Docker或Vagrant快速部署一致的开发环境,确保本地、测试和生产环境的兼容性。同时,我们将讨论Git Flow、Pull Request(PR)流程在API开发团队中的应用,以及如何利用代码审查(Code Review)提升代码质量。 4. 依赖管理与PSR规范: Composer作为PHP的事实标准依赖管理器,其高级用法至关重要。我们将探讨如何管理复杂的依赖关系、锁定版本,并深入学习PSR(PHP Standard Recommendations)规范,确保代码遵循社区公认的最佳实践,增强互操作性。 第二部分:框架核心与API快速构建 本部分将进入实战阶段,详细讲解如何利用选定的主流框架的强大功能快速搭建起API的基础骨架,并实现核心业务逻辑。 1. 路由与控制器设计模式: 学习如何构建清晰的路由结构,理解资源路由(Resource Routing)的便捷性。我们将重点讨论控制器(Controller)的设计原则,如何保持控制器方法的轻量化,并将复杂的业务逻辑分离到服务层(Service Layer),实现关注点分离(Separation of Concerns)。 2. 数据持久化:ORM的深度应用: 数据库交互是API的核心。本书将详细介绍框架内置的对象关系映射(ORM)工具,包括模型(Model)的定义、关系(Relationships,如一对多、多对多)的配置和高效查询(Eager Loading, Lazy Loading)的策略。特别强调如何编写预防SQL注入和优化查询性能的Eloquent/Doctrine代码。 3. 输入验证与数据转换(Request/Form Request): API的健壮性很大程度上取决于输入数据的可靠性。我们将展示如何使用框架提供的内置验证系统,定义复杂的验证规则,并实现自定义的错误信息返回机制。学习如何将HTTP请求数据安全、优雅地转换为应用内部所需的数据结构。 4. 响应构建与序列化: API的输出格式必须标准化。我们将介绍如何使用数据转换器(Transformers)或序列化组件,将数据库中的复杂对象精确地转换为符合REST规范的JSON结构,确保数据类型准确、字段清晰可见,并实现数据过滤和嵌套资源展示。 第三部分:安全、性能与部署 一个投入生产环境的API必须是安全、快速且易于维护的。本部分专注于提升API的非功能性需求。 1. API认证与授权机制(Authentication & Authorization): 身份验证是API安全的生命线。我们将全面覆盖基于Token的身份验证机制,重点讲解OAuth 2.0和JWT(JSON Web Token)的实现原理与实践。深入讨论权限控制(RBAC或ACL),确保用户只能访问其被授权的资源。 2. 速率限制与防范常见攻击: 为了保护服务器资源,速率限制(Rate Limiting)是必不可少的。本书将指导如何基于IP或用户ID实现精细的请求限流策略。同时,我们将探讨如何防范CSRF(虽然在无状态API中不常见,但理解其原理重要)、中间件的应用来拦截恶意请求。 3. 缓存策略的实施: 性能瓶颈往往出现在数据库I/O上。我们将介绍多种缓存层面的优化技术,包括使用Redis或Memcached进行数据缓存、查询结果缓存、片段缓存以及HTTP缓存头(Etag, Last-Modified)的应用。 4. 完善的错误处理与日志记录: 优雅的错误处理是用户体验的一部分。我们将建立统一的异常处理机制,确保所有API错误都返回标准化的JSON错误响应(包含错误码和描述)。同时,配置结构化日志(如使用Monolog),以便于故障排查和监控。 5. API文档自动化与测试驱动开发(TDD): API的易用性依赖于准确的文档。我们将介绍如何集成工具自动生成交互式API文档(如Swagger/OpenAPI规范)。最后,强调单元测试和特性测试的重要性,指导读者编写覆盖路由、业务逻辑和数据层的自动化测试,以确保重构的信心。 目标读者: 具备一定PHP基础,希望系统学习如何利用现代框架构建企业级、可扩展RESTful API的Web开发者、技术主管和架构师。 学习成果: 完成本书学习后,读者将能够独立设计、开发、测试、保护并部署符合行业标准的、高性能的PHP驱动的RESTful API服务。

著者信息

作者簡介

王盛立


  開發PHP有三年以上的業界經驗,善於系統開發、整理資料、分析資料。

  第11屆以《使用 Laravel 打造 RESTful API》得到iT邦幫忙鐵人賽Modern Web組優選以及COSCUP 2020 PostgreSQL 社群議程 《關於關聯這件事 - 後端認識外鍵約束》 講者。

图书目录

01 開發環境
1.1 安裝 XAMPP
1.2 安裝編輯器
1.3 套件管理–Composer
1.4 開發 API 工具–Postman
1.5 版本控制–Git
1.6 小練習–port 是什麼?

02 PHP 介紹
2.1 PHP 檔案
2.2 基本語法
2.3 控制流程
2.4 函數(function)
2.5 小練習–延伸閱讀

03 PHP 物件導向設計
3.1 什麼是物件導向?
3.2 類別(Class)
3.3 繼承(Extends)
3.4 封裝(Encapsulation)
3.5 介面(Interface)
3.6 命名空間(namespace)
3.7 小練習–我的理解

04 RESTful API
4.1 Web API
4.2 HTTP 傳輸協定
4.3 HTTP 動詞
4.4 HTTP 標頭
4.5 HTTP 狀態碼
4.6 HTTP Body
4.7 第一次開發網站的我
4.8 REST 風格
4.9 小練習:決定一個資源

05 進入Laravel、規劃系統核心目的
5.1 安裝 Laravel
5.2 新增資料庫
5.3 設定資料庫管理帳號
5.4 Laravel 環境變數檔案設定
5.5 從生活找到動力–系統構想
5.6 情境分析–具體目標
5.7 小練習–Git 初始化環境

06 新增資源
6.1 定義一個資源
6.2 新建資源檔案
6.3 MVC 架構
6.4 資料庫結構
6.5 資料庫規劃
6.6 實作 Migration
6.7 新建動物的功能
6.8 嘗試可不可以運行
6.9 小練習–Git 目前進度

07 刪除資源以及異常處理
7.1 實作刪除功能
7.2 Delete 動詞回應資料
7.3 嘗試可不可以運行
7.4 異常錯誤處理
7.5 小練習–Laravel 軟體刪除

08 更新資源
8.1 PUT | PATCH 動詞的差別
8.2 嘗試可不可以運行更新動物
8.3 HTTP Content–Type header
8.4 小練習–_method

09 查詢資源
9.1 兩種查詢資源的動作
9.2 查詢單一資源資料
9.3 查詢資源列表
9.4 Factory 產生資料
9.5 資源列表限制
9.6 資源列表分頁
9.7 JSON 格式建議
9.8 資源列表篩選
9.9 資源列表排序
9.10 資源列表快取
9.11 小練習–Model 查詢以及集合運用

10 表單驗證以及語系設定
10.1 前言
10.2 安全的輸入資料
10.3 嘗試可不可以運行
10.4 設定系統語系
10.5 小練習–查詢 Laravel 官方文件

11 Model 關聯以及統一輸出
11.1 分類資源 CRUD
11.2 嘗試讓 API 回傳以下結果
11.3 建立模型關聯–一對多
11.4 Resource 轉換格式
11.5 分析需求統一輸出格式
11.6 補強新增、更新動物資源功能
11.7 小練習–關聯式資料庫

12 身分驗證
12.1 加入會員認證
12.2 註冊帳號
12.3 Laravel 安裝 Passport 身分驗證套件
12.4 設定 Passport
12.5 OAuth2 認證機制 Token 原理
12.6 設定操作資源需驗證的方法
12.7 密碼授權取得 Token
12.8 自訂 Token 過期時間
12.9 刷新 access_token
12.10 SCOPE
12.11 客戶端憑證授權
12.12 修改由身分驗證寫入 user_id
12.13 小練習–Passport 其他授權方式
12.14 小練習–中介層是什麼?

13 需求變更
13.1 修改資料表新建 Migration
13.2 Policy 會員權限原則設計
13.3 增加需求–我的最愛追蹤功能
13.4 小練習–try…catch…資料庫交易

14 容易擴充維護的 API
14.1 URI 格式
14.2 Resource | Utility API
14.3 設定請求次數
14.4 CORS
14.5 快取機制
14.6 HTTPS
14.7 其它建議
14.8 小練習–CORS 體驗

15 重構的觀念
15.1 什麼是重構?
15.2 評估現有的程式碼
15.3 重構步驟
15.4 大型專案設計模式
15.5 小練習–VSCode 建議安裝套件

16 測試的初探
16.1 為什麼寫測試
16.2 測試檔案命名規則
16.3 重置資料庫
16.4 建立測試資料庫
16.5 功能測試
16.6 結論

17 開始重構程式碼
17.1 Request 驗證資料檔案
17.2 Service 設計架構
17.3 結論

18 更好的自己更好的 API
18.1 直接動手做(心情分享)
18.2 修改原本設計的 URI
18.3 API 的 Controller 歸類在一個資料夾中
18.4 如何安心升級 Laravel 7 到 8

19 產生 API 文件
19.1 安裝套件
19.2 設定 API 說明文件基本資訊
19.3 註解關鍵字介紹
19.4 總結
19.5 小練習–建立 API 流程心法
19.6 小練習–正式上線設定建議

20 附錄
20.1 Mac 更新 PHP
20.2 常見 HTTP 狀態碼總覽

图书序言

  • ISBN:9789864345304
  • 規格:普通級 / 初版
  • 出版地:台灣
  • 檔案格式:EPUB固定版型
  • 建議閱讀裝置:平板
  • TTS語音朗讀功能:無
  • 檔案大小:230.3MB

图书试读

用户评价

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 ttbooks.qciss.net All Rights Reserved. 小特书站 版权所有