REST API設計,開發和管理

Soft & Share

無論是物聯網,手機的雲端服務,這中間的資訊同步大部分都是使用 RESTful API ,但是你真的了解如何設計優良,安全可靠不會受到駭客入侵的 API 嗎? 這堂課講解 REST API 的最佳實踐,也包含安全設計,還有如何使用 Swagger  設計 API 規格與 API 管理。

我會學些什麼呢?

  • 透過應用最佳實踐和 REST 約束設計和開發 RESTful API
  • 建立 API 安全性,版本控制,生命週期管理,文件和其它重要方面的實踐
  • 以YAML格式使用 Swagger2.0 / OAI 規範撰寫規格
  • 為企業創建一個 API 管理策略
  • 利用一些常見的 API 管理平台建構 API 代理(APIGEE,IBM API Connect,Mulesoft Anypoint)

要求

  • 任何一種現代程式設計語言,例如Java或Node JS或Go或PHP
  • 熟悉 Web 應用程式架構
  • 有 XML 或是 JSON 格式的概念
  • 了解服務的概念

說明

今天,企業正在使用REST API不僅構建手機應用程序,而且還用於:

  • 創建合作夥伴的新管道
  • 建立新的收入流和商業模式
  • 行銷它們的品牌
  • 只是創建 API 並不能保證企業能夠從 API 的角度實現所期望的目標。開發人員採用API取決於多個方面,例如它的效用,易用性,性能,可擴展性,安全性。API提供者必須在API的整個生命週期中應用最佳實踐。
  • 本課程涵蓋與API的設計,開發和管理相關的所有重要部分。本課程中討論的最佳實踐,挑戰,建議和選擇是:
  • 透過分析流行的API提供商(如Facebook,Twitter,Capital One等)其API是如何建構和管理

或是/並且

  • 採取作者的個人經驗

本課程適合任何對於端對端( end to end)學習有興趣REST API的技術專家,而不僅僅是從程式設計角度。雖然本課程使用NodeJS來示範設計最佳實踐,但它不要求學生擁有NodeJS的任何先前經驗。

要學習這門課程,學生應該知道任何一種(或多種)程式設計語言;有 Web 應用程式架構的理解;熟悉服務的概念;了解JSON或XML等資料格式

請注意,本課程不會教如何在NodeJS中編寫REST API。

課程分為6個部分:

1.設置階段

本節中的講座將提供課程大綱,討論將用作課程展示的案例研究(ACME Travel),提供課程中使用的工具列表。

2. REST API概念

本節中的講座將涵蓋基礎概念,如RESTful API的演進和6種架構的約束。

3.設計REST API

本節中的重點是設計REST API的最佳實務。本節中採用的方法是展示一些流行的API提供者(例如,Twitter,Facebook,Twilio …)如何設計他們的REST API。

  • 資源,CRUD實現
  • 錯誤處理,HTTP狀態代碼
  • 變更管理和版本控制
  • 分頁,部分反應

為了示範實現方面,一組基於NodeJS的API也被用於實現 ACME Travels 虛擬企業。

4.保護REST API

常用的BasicAuth標準不是實現API安全的最佳方式。在本節中,學生將學習用於REST API的常用認證和授權方案

  • Tokens(Jason Web Tokens或JWT)
  • Key/Secret
  • OAuth 2.0(使用Spotify實現作為參考)

當企業將API暴露給公眾網路時,它對企業構成風險,因為駭客可能使用API中的漏洞來對企業發起攻擊。有多種類型的這種功能攻擊,API提供商必須考慮。你將了解常見的攻擊和保護API的最佳做法。

5. Swagger 2.0 / Open API 計畫規範

本節將從協作規範開發流程和採用合同第一方法的好處開始。學生將學習

  • Swagger 2.0規範標準
  • 如何以YAML格式創建REST API規範
  • 用於Swagger規範編輯的工具選項
  • Swagger 2.0的好處

展示如何利用通用平台(如Apigee,Mulesoft和IBM API Connect)規範

作為講座的一部分,將為 ACME Vacations 創建一個完整的規範。在本節結束時,學生將能夠為自己的API編寫Swagger / OAI規範。

6. API管理

API管理是在安全,可擴展的環境中發布,記錄和監督應用程式介面 API 的流程。本節中的講座包括 API 供應商在 API 管理範圍內執行的以下活動的詳細資訊。

  • 生命週期管理
  • 開發人員生產力
  • 開發者入口網站
  • 安全

View original post 54 more words

Advertisements

Published by

Engineer IP Dev Crash Browser

Dad #engineering automatic 🚀🚀🚀🚀🚀🚀🚀🚀🇲🇦 https://www.freecodecamp.org/barkinet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s