#41 訂飲料 APP | Part3 建立 飲料訂單並上傳至 AirTableAPI

建立 飲料訂單,使用RESTFul API “POST”的建立資料功能,將飲料訂單上傳到 AirTable API

--

Part 2. 的時候,已經建立了OptionViewController,也已經建立了@IBSegueAction 來將資料從MenuTableViewController 傳到OptionViewController。

現在先來設計OptionViewController頁面。

  1. nameLabel 為從MenuTableViewController傳過來的飲料名稱。
  2. drinkImageView 為從MenuTableViewController傳過來的飲料圖片。
  3. orderTextField 為訂構者姓名,按送出訂單之後就會上傳到 AirTable。
  4. 溫度(temperatureChoice)跟甜度(sweetChoice)直接使用UISegmentedControl來傳送選項。
  5. 杯型跟加料因為需要加錢,所以需要拉@IBOutlet 跟@IBAction。
  6. priceLabel 為計算總價格。
  7. 送出訂單 Button 就是將以上的選項上傳至 AirTable。

設定一開始顯示的資料

加入以下程式碼,讓頁面一開始就顯示上一頁傳過來的飲料選項,還有其他選項的預設值。

UISegmentedControl 的內容設定

  • 溫度(temperatureChoice)跟甜度(sweetChoice)直接使用UISegmentedControl來傳送選項。因為沒有加錢,比較簡單,就讓選好的選項記住就好。

利用 Switch 來決定使用者的選擇。

  • 杯型跟加料因為需要加錢,程式碼比較複雜。

因為加杯型加大或加白玉都需要加 10元,所以在杯型的選項中,需要加入是不是有加選白玉的價格,在加白玉的選項中,需要加入是中杯還是大杯的價格。如下:

在 AirTable 建立orderList 的 Table,來儲存 APP 上傳的資料

總共有 7 個資料要寫入

  • name
  • drinkName
  • cupSize
  • temperature
  • sweet
  • topping
  • finalPrice

一樣在程式端這邊也要建立一個OrderList 的型別,OrderList.swift

來看一下 AirTable API POST 的寫法

  • -X 就是 httpMethod = “POST”
  • -H 就是 HTTP header
  • -d 或 — data 就是上傳的資料

上傳選項到 AirTable 建立一筆新的資料

程式說明如下:

  1. 這邊有加了一個檢查,如果orderTextField 裡面是空字串的話,就會跳出 alert 警告。如果有輸入名字,就會繼續程式進行~

2. 檢查完名字輸入完成之後,就會執行下段程式。

利用 RESTful API 的 POST 功能,將在這個頁面的資料上傳到 AirTAble。

3. 上傳資料到 AIrTable 之後,會跳出一個 Alert 說明“已完成訂購”,然後回到菜單頁面~

結果如下

繼續研究

--

--