Web API設計原則

    API與微服務傳遞價值之道

    收集中
    US$16.15

    內容簡介


    《Web API設計原則》涵蓋了在設計API時的原則與流程,透過書中的準則,帶領讀者設計出高成效的API,作者首席顧問James Higginbotham具有豐富的實戰經驗,帶領您與團隊成員建立共識,並設計出高價值的API,並將此設計流程從小團隊擴展到全組織。

    作者從「從外向內」(outside-in)的視角檢視API設計,聆聽來自用戶與產品團隊的意見,彙整外部需求,並根據外部需求進行API設計,並確保API的架構條理分明,也談到如何選擇合適的API風格進行實作,書中透過一個實際的案例,為打算設計新API或擴展現有API的人員提供指導。

    ‧用正確的設計流程交付出色的API
    ‧為設計團隊、用戶及其他成員建立共同的目標
    ‧製作工作故事(job story)、進行事件風暴(EventStorming)與建構數位能力(digital capability)模型
    ‧正確的釐清需求,並歸納成格式一致的API Profile
    ‧從REST、gPRC、GraphQL、event-based async API(事件式的異步API)等數種API風格中挑選最佳實現方案
    ‧從文檔編寫人員、測試人員和客戶的反饋改進設計
    ‧將API解構成微服務
    ‧累積API經驗與策略,實現可擴展的設計與管理流程

    不論你是架構師、開發者、團隊領導人、團隊經理,或是任何提供「API-as-a-product」(API即產品)的技術或商業人士,凡是與API規劃或建構有關的人士,本書對您會是相當有價值的參考資料。

    作者介紹


    作者James Higginbotham是開發者,也是架構師與顧問,在開發、佈署應用程式、API等方面有超過25年的經驗,他的諮詢公司LaunchAny主要負責輔導企業數位轉型,經驗涵蓋銀行業、保險業、服務業、旅遊業以及航空業等,幫助企業將商業、產品、技術整合成模組化的架構,使企業成為可承載多元模組的戰略平台。

    目錄


    編輯序
    推薦序
    前言
    致謝
    關於作者

    Part I 初探 Web API設計
    第一章 API 設計原則
    第二章 API 設計與團隊合作

    Part II 尋求一致性
    第三章 鑑別數位能力
    第四章 產生活動與步驟

    Part III 定義 API
    第五章 界定 API 邊界
    第六章 建立 API 模型

    Part IV 設計 API
    第七章 REST API 設計
    第八章 RPC 與 Query-Based API 設計
    第九章 異步 API

    Part V 優化 API 設計
    第十章 從 API 到微服務
    第十一章 優化開發體驗
    第十二章 API 測試策略
    第十三章 撰寫 API 設計文件
    第十四章 API 的改版規劃
    第十五章 API 防護
    第十六章 繼續在 API 設計的航道上

    附錄 HTTP 入門

    章節目錄

    1-1封面
    1-2書名頁
    1-3目錄
    1-4編輯序
    1-5推薦序
    1-6前言
    1-7致謝
    1-8關於作者
    1-9Part I 初探Web API設計
    1-10第一章 API設計原則
    1-11Web API設計要素
    1-12商業能力
    1-13產品思維
    1-14開發體驗
    1-15API設計=溝通與交流
    1-16檢視軟體設計原則
    1-17模組化
    1-18封裝
    1-19高內聚低耦合
    1-20Resource-Based API設計
    1-21資源≠資料模型
    1-22資源≠物件或領域模型
    1-23在Resource-Based API交換資訊
    1-24Web API設計原則
    1-25總結
    1-26第二章 API設計與團隊合作
    1-27為什麼需要API設計流程?
    1-28API設計流程的反模式
    1-29「抽象泄漏」反模式
    1-30「下次再改」反模式
    1-31「孤注一擲」反模式
    1-32「乏人問津」反模式
    1-33「API設計優先」方法
    1-34「API設計優先」與敏捷開發
    1-35檢視敏捷開發宣言
    1-36API設計優先中的敏捷性
    1-37ADDR流程
    1-38DDD在API設計中的角色
    1-39API設計與全員參與
    1-40有效的實施流程
    1-41總結
    1-42Part II 尋求一致性
    1-43第三章 鑑別數位能力
    1-44確保參與者的共同目標
    1-45什麼是「數位能力」?
    1-46聚焦在JTBD
    1-47什麼是工作故事?
    1-48工作故事的結構
    1-49寫出API的工作故事
    1-50方法一:已知要解決的問題
    1-51方法二:已知要達成的目標
    1-52方法三:已知所需的數位能力
    1-53工作故事中的挑戰
    1-54挑戰一:太多細節
    1-55挑戰二:太偏向功能面
    1-56挑戰三:缺乏使用情境
    1-57撰寫工作故事的技巧
    1-58實際的API設計案例
    1-59工作故事範例
    1-60總結
    1-61第四章 產生活動與步驟
    1-62從工作故事產生活動與步驟
    1-63從工作故事中產生活動
    1-64將活動解構成步驟
    1-65如果需求不明確呢?
    1-66利用事件風暴求出共識
    1-67事件風暴怎麼玩?
    1-68第一步:區分領域事件
    1-69第二步:建立事件敘述
    1-70第三步:回顧事件敘述與劃分事件範圍
    1-71第四步:補充領域資訊
    1-72第五步:回顧最終的事件敘述
    1-73事件風暴的好處
    1-74誰應該來玩?
    1-75舉辦一場事件風暴
    1-76準備:準備道具
    1-77分享:事前說明
    1-78執行:開始執行
    1-79總結:找出活動與步驟
    1-80後續:活動後的建議
    1-81調整活動流程
    1-82總結
    1-83Part III 定義API
    1-84第五章 界定API邊界
    1-85避免API邊界的反模式
    1-86超級多合一API反模式
    1-87超載API反模式
    1-88零散小工具API反模式
    1-89有界語境、子領域與API
    1-90用事件風暴界定API邊界
    1-91用活動界定API邊界
    1-92API的命名與範圍
    1-93總結
    1-94第六章 建立API模型
    1-95什麼是API模型?
    1-96API Profile結構
    1-97API建模流程
    1-98第一步:建立API profile概要
    1-99第二步:找出相關資源
    1-100第三步:定義資源階層
    1-101第四步:加入操作事件
    1-102第五步:補充操作細節
    1-103用時序圖驗證API模型
    1-104評估API優先度與重用性
    1-105總結
    1-106Part IV 設計API
    1-107第七章 REST API設計
    1-108什麼是REST API?
    1-109REST是主從式架構的
    1-110REST是以資源為中心的
    1-111REST是以訊息為基礎的
    1-112REST是支援分層式系統的
    1-113REST是支援Code on Demand的
    1-114REST的Hypermedia特性
    1-115何時該選用REST?
    1-116REST API設計流程
    1-117第一步:設計資源的URL路徑
    1-118第二步:將API操作對應到HTTP方法
    1-119第三步:設定回應碼
    1-120第四步:撰寫REST API設計文件
    1-121第五步:分享並獲得回饋
    1-122決定API的表現格式
    1-123資源序列化
    1-124序列化加Hypermedia
    1-125支援Hypermedia的通用訊息格式
    1-126語意化的通用訊息格式
    1-127常見的REST API設計模式
    1-128CRUD
    1-129更多的資源生命週期
    1-130Singleton的資源
    1-131背景(隊列)工作
    1-132REST的長跑型互動問題
    1-133總結
    1-134第八章 RPC與Query-Based API設計
    1-135什麼是RPC API?
    1-136gRPC協議
    1-137使用RPC的考慮因素
    1-138RPC API設計流程
    1-139第一步:識別RPC操作
    1-140第二步:為RPC操作加入細節
    1-141第三步:撰寫API設計文件
    1-142什麼是Query-Based API?
    1-143理解OData
    1-144探索GraphQL
    1-145Query-Based API設計流程
    1-146第一步:設計資源與圖譜結構
    1-147第二步:設計Query和Mutation操作
    1-148第三步:撰寫API設計文件
    1-149總結
    1-150第九章 異步API
    1-151輪詢的問題
    1-152帶來新局的異步API
    1-153檢視收發訊息的本質
    1-154訊息的風格與區域性
    1-155訊息的組成元素
    1-156訊息的中介代理
    1-157點對點訊息發布(隊列模式)
    1-158扇出式訊息發布(主題模式)
    1-159訊息串流基礎
    1-160異步API風格
    1-161用Webhook傳送通知
    1-162用SSE推送訊息
    1-163用WebSocket進行雙向通知
    1-164gRPC串流
    1-165挑選異步API實現風格
    1-166設計異步API
    1-167命令訊息
    1-168事件通知
    1-169帶有狀態變更的事件
    1-170批次事件
    1-171事件的排序
    1-172撰寫異步API文件
    1-173總結
    1-174Part V 優化API設計
    1-175第十章 從API到微服務
    1-176什麼是微服務?
    1-177用微服務降低協作成本
    1-178API與微服務的差異
    1-179衡量微服務的複雜度
    1-180自助式的基礎設施
    1-181獨立的發布週期
    1-182單團隊管理
    1-183組織架構與文化衝擊
    1-184資料所有權的轉移
    1-185分散的資料管理與治理
    1-186分佈式系統的挑戰
    1-187復原性、故障轉移和分佈式事務
    1-188重構與程式碼共享的挑戰
    1-189微服務的同步與異步
    1-190微服務架構風格
    1-191服務間直接通訊
    1-192以API為基礎的規劃
    1-193以模組化單元組成的架構
    1-194穠纖合度的微服務
    1-195將API解構成微服務
    1-196第一步:識別出可能的微服務
    1-197第二步:在API時序圖中加入微服務
    1-198第三步:用MDC定義細節
    1-199額外的設計考量
    1-200轉換成微服務時的考量
    1-201總結
    1-202第十一章 優化開發體驗
    1-203建立擬真API
    1-204建立靜態API
    1-205建立原型API
    1-206用README模擬
    1-207提供輔助套件與SDK
    1-208輔助套件的供給模式
    1-209輔助套件的版次管理
    1-210輔助套件的文件與測試
    1-211提供CLI工具
    1-212總結
    1-213第十二章 API測試策略
    1-214驗收測試
    1-215自動化安全測試
    1-216運行監控
    1-217API Contract測試
    1-218能加速測試的工具
    1-219API測試的挑戰
    1-220建立API測試的必要性
    1-221總結
    1-222第十三章 撰寫API設計文件
    1-223API文件的重要性
    1-224API描述文件的格式
    1-225OpenAPI
    1-226API Blueprint
    1-227RAML
    1-228JSON Schema
    1-229以ALPS製作API Profile
    1-230用APIs.json增進API的可探知性
    1-231在文件添加範例程式
    1-232優先提供入門使用範例
    1-233用工作流程範例豐富文件內容
    1-234提供錯誤案例與生產環境案例
    1-235從文件進化成開發者網站
    1-236利用開發者網站擴大API採用率
    1-237優質開發者網站的構成要素
    1-238有效的API文件
    1-239問題一:你的API如何解決我的問題?
    1-240問題二:API的操作各自負責什麼?
    1-241問題三:我要怎麼開始呢?
    1-242API文件中技術寫作者的角色
    1-243開發者網站的MVP
    1-244第一階段:MVP
    1-245第二階段:持續優化
    1-246第三階段:聚焦於成長
    1-247建立開發者網站的工具與框架
    1-248總結
    1-249第十四章 API的改版規劃
    1-250改版對API帶來的衝擊
    1-251分析新舊版API差異
    1-252決定對API用戶較好的選項
    1-253改版策略
    1-254建立在信任基礎上的改版
    1-255API版次策略
    1-256常見的非破壞性改版
    1-257破壞相容性的改版
    1-258API的版次與修訂版次
    1-259API的版次區別方法
    1-260API改版的商業面考量
    1-261API的退場
    1-262制定退場政策
    1-263退場的公告
    1-264建立API穩定性聲明
    1-265總結
    1-266第十五章 API防護
    1-267潛在的危害
    1-268API防護機制
    1-269API防護元件
    1-270API閘道
    1-271APIM
    1-272服務網格
    1-273WAF
    1-274CDN
    1-275智慧型API防護
    1-276API閘道拓撲
    1-277API管理主機的選擇
    1-278API網路流量來源的考量
    1-279拓撲模式一:API閘道直連API
    1-280拓撲模式二:API閘道導給不同的服務
    1-281拓撲模式三:多重API閘道
    1-282IAM
    1-283密碼與API密鑰
    1-284API Token
    1-285以參照傳遞Token vs.以值傳遞Token
    1-286OAuth 2.0與OpenID Connect
    1-287自行建置API閘道前的考量
    1-288理由一:百密一疏的安全性
    1-289理由二:事倍功半的努力
    1-290理由三:並非一蹴可及的成果
    1-291那用現成套件如何?
    1-292總結
    1-293第十六章 繼續在API設計的航道上
    1-294建立API風格指南
    1-295鼓勵依循風格指南的手段
    1-296挑選風格指南的調性
    1-297風格指南製作小技巧
    1-298提供多種API風格
    1-299進行API設計檢討
    1-300從文件檢討開始
    1-301確認標準與設計一致性
    1-302檢查自動化測試的涵蓋範圍
    1-303加入可試用特性
    1-304發展重用文化
    1-305從起點展望未來
    1-306附錄
    1-307HTTP入門
    1-308索引
    1-309版權頁
    1-310封底

    常見問答

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    猜你喜歡

    用戶評價

    | 收集中

    銷售方案