##やること
Swiftで楽天APIをデバッグエリア表示させる。
##APIからデータを取得する
今回使ったAPI
楽天レシピカテゴリ別ランキングAPI
(楽天IDが必須になります)
{
result: [
{
foodImageUrl:
"https://image.space.rakuten.co.jp/d/strg/ctrl/3/34d4ce95b8674c8fb6c8f08b5115464a9f180c31.17.2.3.2.jpg",
recipeDescription: "小鉢がもう1品ほしいなっていう時に簡単でオススメです。",
recipePublishday: "2011/08/22 19:04:07",
shop: 0,
pickup: 1,
recipeId: 1200002403,
nickname: "JIMA88",
smallImageUrl:
"https://image.space.rakuten.co.jp/d/strg/ctrl/3/34d4ce95b8674c8fb6c8f08b5115464a9 f180c31.17.2.3.2.jpg?thum=55",
recipeMaterial: [
"きゅうり",
"ごま油",
"すりごま",
"鶏ガラスープのもと",
"ビニール袋"
],
recipeIndication: "5分以内",
recipeCost: "100円以下",
rank: "1",
recipeUrl: "https://recipe.rakuten.co.jp/recipe/1200002403/",
mediumImageUrl:
"https://image.space.rakuten.co.jp/d/strg/ctrl/3/34d4ce95b8674c8fb6c8f08b5115464a9f180c31.17.2.3.2.jpg?thum=54",
recipeTitle: "1分で!うまうま胡麻キュウリ"
}
##Codableを使ってJSONを変換させる
参考にした本
参考にした動画
参考にした記事
今回は上記の楽天レシピAPIから記事のフードイメージurlとレシピタイトルを取得しました。
struct ResultList: Codable {
let result: [User]
struct User: Codable {
let foodImageUrl :String
let recipeTitle :String
}
}
##APIをURLSessionを使って叩く
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
getRApi()
}
private func getRApi(){
guard let url = URL(string: "ここに楽天APIのURLを") else {return}
let task = URLSession.shared.dataTask(with: url) { (data, response, err)in
if let err = err {
print("情報の取得に失敗しました。:", err)
return
}
if let data = data{
do{
let resultList = try JSONDecoder().decode(ResultList.self, from: data)
print("json: ", resultList)
}catch(let err){
print("情報の取得に失敗しました。:", err)
}
}
}
task.resume()
}
}
無事表示されました。
次はtableviewを作っていきたいと思います!