1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

APIをデバックエリアに表示させる〜Swiftで楽天レシピAPIを表示させてみた①〜

Last updated at Posted at 2020-07-26

##やること
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()
        }
    }

##実際にデバッグエリア
スクリーンショット 2020-07-26 14.34.38.png

無事表示されました。
次はtableviewを作っていきたいと思います!

次の記事

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?