0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Swift】API通信の基礎理解(API / JSON / Codableを整理)

0
Posted at

Swift学習を始めて「API通信」の学習をしているのですが、「APIって何?」「JSONってなに?」「Codableっとは?」という個人的な疑問を、この記事でまとめました。


0. そもそもAPIとは?

APIは Application Programming Interface の略です。
言葉を分解するとイメージが湧きやすくなります。

  • Application:アプリ(LINE、天気アプリなど)
  • Programming:プログラム(コード)
  • Interface:接点・窓口

👉 つまり 「プログラム同士が情報をやり取りするための専用窓口」 です。

API通信で何をしてるの?

主に使われるのはこの2つです。

メソッド イメージ 内容
GET ちょうだい! サーバーに「データをください」とお願いする(例:天気予報の取得)
POST これお願い! サーバーに「データを登録して」と送る(例:SNSへの投稿)

ステータスコード(サーバーからの返事)

  • 200 OK: 成功!
  • 404 Not Found: そんな窓口(URL)はありません。

1. なぜAPI通信が必要なの?

現代のアプリは、ほぼすべてAPI通信で成り立っています。

  • 天気アプリ:気象庁などのサーバーから最新データを取得
  • ECサイト:商品在庫や決済情報をサーバーとやり取り
  • SNS:みんなの投稿をサーバーから取ってきたり、自分の投稿を送ったりする

したがって、API通信は避けては通れない必須スキルなのです。


2. JSON(ジェイソン)とは?

APIという窓口でやり取りされる「データの書き方のルール」のことです。
👉 「データをやり取りするための共通言語」 と覚えましょう。

JSONの代表的な3パターン

パターン①:配列(Array)
[] で囲まれている。同じ種類のデータが並んでいる状態。

[
  {"name": "Oyazi"},
  {"name": "Ohukuro"}
]

パターン②:オブジェクト(Dictionary)
{} で囲まれている。「キー:値」のセット。

{
  "user_name": "Oyazi",
  "age": 50
}

パターン③:入れ子構造
オブジェクトの中に配列が入っているなど。

{
  "users": [
    {"name": "Oyazi"},
    {"name": "Ohukuro"}
  ]
}

3. Swiftの「Codable」とは?

ここからは、Swiftを利用する際に、
Codableというプロトコルを理解する必要があります。まず、Codableの役割についてですが、
データを自動変換するプロトコルです・

・Decodable(デコード / 復号): 「戻す」イメージです。外部データ(JSON文字列など)を、プログラムで扱える形式(Swiftの構造体やクラス)に変換すること。
・Encodable(エンコード / 符号化): 「形を変える」イメージです。プログラム内のデータ(Swiftの構造体やクラス)を、外部でやり取りしやすい形式(JSON文字列など)に変換すること。
・Codable:上記2つのセット

// JSON形式
{
"id":"WLJJRKJeqjb",
"joke":"I used to work in a shoe recycling shop. It was sole destroying."
}
// Swiftの型として定義しておけば
struct Joke: Codable {
    let id: String
    let joke: String
}

4.API通信の全体の流れ

アプリがインターネットからデータを取ってきて画面に出すまでの流れになります。

① リクエスト作成(注文書の作成)
「どのURLに」「どんな方法(GET/POST)」で聞くか決めます。
② 通信(非同期処理)🚚
ここが超重要!通信は**「非同期(ひどうき)」**で行われます。
③ データ受け取り(JSON到着)📦
サーバーからデータが届きます。届いた直後はまだ JSON(ただの文字列) です。
④ データ変換(Codableで翻訳)📖
JSONDecoder(JSON→Swiftの型へ) を使って、ただの文字列だったJSONを、Swiftの 「構造体」 に一瞬で変換します。
⑤ 画面表示(UI反映)📱
変換したデータを画面にセットします。最後に「表側(メイン)」に戻して表示させて完了です!

まとめ

API = プログラム同士が情報をやり取りするための専用窓口
JSON = データをやり取りするための共通言語
Codable = Swiftで使いやすくする翻訳機

まだまだ表面しか覚えられていない感覚もありますが、API通信を理解する上で大事と思った3つのポイントでした。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?