# API第三方之用法 *2021/7/15* swagger : https://api.preprod.imf-go.com/client/api-documentation/#/ ## 科技 我們用的科技是 REST https://zh.wikipedia.org/wiki/表现层状态转换 ## 呼叫API通用格式 :::info [請求方法] https://api.imf-go.com/[API名稱] ::: * ### 請求方法: **GET** 向指定的資源發出「顯示」請求。使用GET方法應該只用在讀取資料,而不應當被用於產生「副作用」的操作中,例如在網路應用程式中。其中一個原因是GET可能會被網路爬蟲等隨意存取。參見安全方法。瀏覽器直接發出的GET只能由一個url觸發。GET上要在url之外帶一些參數就只能依靠url上附帶querystring。 **POST** 向指定資源提交資料,請求伺服器進行處理(例如提交表單或者上傳檔案)。資料被包含在請求本文中。這個請求可能會建立新的資源或修改現有資源,或二者皆有。每次提交,表單的資料被瀏覽器用編碼到HTTP請求的body里。瀏覽器發出的POST請求的body主要有兩種格式,一種是application/x-www-form-urlencoded用來傳輸簡單的資料,大概就是"key1=value1&key2=value2"這樣的格式。另外一種是傳檔案,會採用multipart/form-data格式。採用後者是因為application/x-www-form-urlencoded的編碼方式對於檔案這種二進位的資料非常低效。 **PUT** 向指定資源位置上傳其最新內容。 **DELETE** 請求伺服器刪除Request-URI所標識的資源。 * ### Token 您用API的時候,為了確認使用者的身份,REST需要多知道一個資料才會上線成功。這在叫Token(APIkey)。Token是放在請求的header裡面。 ![](https://i.imgur.com/ZZ08U0E.png) * ### Parameters 怎麼用到一些parameters呢 ? REST科技使用所謂的 body。有的請求方法必續使用body才可以進行(比如:PUT, POST, DELETE) 簡單來講,若您需要新增工單,您需要給資料才能建立工單 (POST) 若您想要刪除,您需要設定哪一個工單,因而需要給ID的資料等等⋯⋯(DELETE) body example: ```json= { "key":value "key2":value2, "key3":value3, "key4":value4 } ``` ![](https://i.imgur.com/Dvq16Ih.png) ![](https://i.imgur.com/xpTHX92.png) * ### 請求回復 | Code | Status | | -------- | -------- | | 200 | 成功 | | 400 | 失敗 | --- ## FUNCTIONS: **1.建立工單** 請求方法 = POST API名稱 = client/order body : ```json= { "device_num": "1A-1-2", "device_name": "Wudang", "tonnage": 250, "mold_num": "P00990", "product_name": "CARRIAGE-SCANNER", "cavity_amount": 4, "best_cycle": 35, "material_num": "RNABS011G25", "base_material": "ABS+20%GF", "expect_quantity": 100000, "order_num": "4079002" } ``` :::info POST https://api.imf-go.com/client/order ::: --- **2.List orders** 請求方法 = GET API名稱 = client/order no body :::info GET https://api.imf-go.com/client/order ::: --- **3.刪除工單** 請求方法 = DELETE API名稱 = client/order body: ```json= { "id": 1 } ``` :::info DELETE https://api.imf-go.com/client/order ::: --- **4.更新工單** 請求方法 = PUT API名稱 = client/order/{id} *為了知道要改什麼工單,連結的後面需要輸入工單的ID。* (比如:https://api.imf-go.com/client/order/1) body: ```json= { "device_num": "1A-1-2", "device_name": "Wudang", "tonnage": 250, "mold_num": "P00990", "product_name": "CARRIAGE-SCANNER", "cavity_amount": 4, "best_cycle": 35, "material_num": "RNABS011G25", "base_material": "ABS+20%GF", "expect_quantity": 100000, "order_num": "4079002" } ``` :::info PUT https://api.imf-go.com/client/order/{id} :::