API串接練習咖啡店&&Mapkit應用 導航 (1) 串接API
Published in
5 min readAug 12, 2020
成果展示
使用者可以輸入台灣的縣市 搜尋咖啡店了解位置與導航至該店
練習使用API
STEP1 取得API
這次串接的是Cafe Nomad
首先打開API 了解其資料結構
很單純的結構資料只是透過陣列儲存
step2 建立JSON型別
Codable:同時包含Encodable 和 Decodable 協議的類型別
所以我們的資料可編碼( encodable )和可解碼 ( decodable )方便很多
這邊要注意建立的型別與名稱要完全的跟API的名稱一模一樣
(我在做的時候經緯度的部份沒注意API資料是String 用成Double..)
step3 串接API 解析JSON回傳資料
注意到官方有說獲取地區資訊只要在原本api後加上地區名
將各縣市存成陣列在並與原來url合併產生
let cities=["taipei","yilan","taoyuan","hsinchu","miaoli","taichung","changhua","Nantou","Yunlin","Chiayi","Tainan","Kaohsiung","Pingtung"]let apiUrlString="https://cafenomad.tw/api/v1.2/cafes"let urlString="\(apiUrlString)/\(searchText)"//查詢時使用這個url
這邊在decode[ CafeInfo] 因為資料為Array
step4 將資料show出來
Viewcontroller 遵從TableViewcontroller 實作兩個func
extension ViewController:UITableViewDelegate,UITableViewDataSource{func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {return cafes.count //回傳列數}func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {let cell=tableView.dequeueReusableCell(withIdentifier:"CafeTableViewCell", for: indexPath) as! CafeTableViewCelllet cafeInfo=cafes[indexPath.row] cell.cafeName.text=cafeInfo.name //回傳名稱cell.cafeAddress.text=cafeInfo.address //回傳地址return cell}
PickerView使用實作方法
var pickerView=UIPickerView() //實例建立Pickerview
TextField輸入方式改為PickerView
//設定textField彈出為pickerViewtextField.inputView=pickerViewtextField.textAlignment = .centertextField.placeholder="Select a City"
MAPKit導航實現
之後單獨寫一篇紀錄(更新)
這篇主要是API串接
希望這篇文章能夠幫助到你(妳)
如有錯誤指正
I hope you found this guide helpful. If not, then please let me know either in the comments below, I’m AlberLee
Swift#18