國高中電腦養成班 - 基礎一 (14)
- (6/22) 第十三週: RESTful API
大綱
RESTful API
Swagger
demo
RESTful API 是什麼?
API 是
(Application Programming Interface 的縮寫)
讓別人程式可以叫用你提供的 service (服務),
通常都回傳 JSON 格式的結果, 或 XML 格式
可用 curl 指令測試
也可用Chrome 的 plugin: Postman 來測試
你可以用別人的 API, 也可以提供 API 給別人用, (或手機用)
GraphQL
新方法, 不用 http, https, 但更簡單, 讓 client 或程式端決定回傳值(結果)
* 裡用 GraphQL client 測試結果.
* 只要定義 Schema
* 更適合手機端軟體向 server 索取資料. (因為你可以用程式選擇下載的資料項目, 挑你想顯示的資料就好.)
* 只用 JSON 格式就好.
RESTful API
最常用的 API 介面, 利用 http, https 方法存取資料
* 固定寫好回傳值 (client 不能做選擇)
* 利用 GET 抓資料
* 利用 PUT 或 POST 更新資料
* 利用 DELETE 刪除資料
* 用 JSON 或 XML 格式
websocket API
即時更新, GraphQL subscription 也是利用 websocket 技術
GET 範例 (取得)
curl -X GET "https://petstore.swagger.io/v2/user/ming"
POST 範例 (新增)
curl -X POST "https://petstore.swagger.io/v2/user" -d "{ \"id\": 100, \"username\": \"ming\", \"firstName\": \"Ming-der\", \"lastName\": \"Wang\", \"email\": \"ming@log4analytics.com\", \"password\": \"asdfasdfadsf\", \"phone\": \"0910006662\", \"userStatus\": 0}"
PUT 範例 (修改)
curl -X PUT "https://petstore.swagger.io/v2/pet" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"id\": 0, \"category\": { \"id\": 0, \"name\": \"string\" }, \"name\": \"doggie\", \"photoUrls\": [ \"string\" ], \"tags\": [ { \"id\": 0, \"name\": \"string\" } ], \"status\": \"available\"}"
DELETE 範例 (刪除)
curl -X PUT "https://petstore.swagger.io/v2/pet" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"id\": 0, \"category\": { \"id\": 0, \"name\": \"string\" }, \"name\": \"doggie\", \"photoUrls\": [ \"string\" ], \"tags\": [ { \"id\": 0, \"name\": \"string\" } ], \"status\": \"available\"}"
因為用 http, https
所以會有 return code:
swagger
是一個 RESTful API 的定義標準
方便大家測試
Petstore 為例
IBM x-force exchange API 為例
curl -X GET --header 'Accept: application/json' --header 'Authorization: Basic ODExNmFmNzItNGJmNi00YTBlLTk4ZjItN2U2OWNjMzBiMDU0OmZhZDAwNjE5LTk3OGItNDQ1Yy1iNjZlLWJiODE2NDg1YTg3MQ==' 'https://api.xforce.ibmcloud.com/casefiles'
大部分 API 都需要 token 授權碼.
Bitcoin Blockchain API 為例
未來, 人工智慧也都能用
RESTful APIs
其他有 19,802 種 APIs可以到
https://www.programmableweb.com/
網站找, 例如 github, twitter, hotel
(例如: travelgatex-hotel 已經開始用 GraphQL)
本週作業
試做你的專題程式, 下週 demo 給別組看.
第一組: fork from https://github.com/mingderwang/homeworks-deadline
第二組: server fork from https://github.com/mingderwang/my-audio-server
expo import from https://github.com/mingderwang/audio-recording
第三組: fork from https://github.com/mingderwang/spellingCheck
下週(6/29)
每一組專題報告
學習心得
國高中電腦養成班 - 基礎一 (14)
By Ming-der Wang
國高中電腦養成班 - 基礎一 (14)
(6/22) 第十三週: RESTful API
- 1,215