RESTful API
Swagger
demo
(Application Programming Interface 的縮寫)
讓別人程式可以叫用你提供的 service (服務),
通常都回傳 JSON 格式的結果, 或 XML 格式
可用 curl 指令測試
也可用Chrome 的 plugin: Postman 來測試
你可以用別人的 API, 也可以提供 API 給別人用, (或手機用)
新方法, 不用 http, https, 但更簡單, 讓 client 或程式端決定回傳值(結果)
* 裡用 GraphQL client 測試結果.
* 只要定義 Schema
* 更適合手機端軟體向 server 索取資料. (因為你可以用程式選擇下載的資料項目, 挑你想顯示的資料就好.)
* 只用 JSON 格式就好.
最常用的 API 介面, 利用 http, https 方法存取資料
* 固定寫好回傳值 (client 不能做選擇)
* 利用 GET 抓資料
* 利用 PUT 或 POST 更新資料
* 利用 DELETE 刪除資料
* 用 JSON 或 XML 格式
即時更新, GraphQL subscription 也是利用 websocket 技術
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}"
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\"}"
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\"}"
所以會有 return code:
是一個 RESTful API 的定義標準
方便大家測試
curl -X GET --header 'Accept: application/json' --header 'Authorization: Basic ODExNmFmNzItNGJmNi00YTBlLTk4ZjItN2U2OWNjMzBiMDU0OmZhZDAwNjE5LTk3OGItNDQ1Yy1iNjZlLWJiODE2NDg1YTg3MQ==' 'https://api.xforce.ibmcloud.com/casefiles'
大部分 API 都需要 token 授權碼.
RESTful APIs
網站找, 例如 github, twitter, hotel
(例如: travelgatex-hotel 已經開始用 GraphQL)
第一組: 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