Skip to content

Latest commit

 

History

History
49 lines (31 loc) · 1.04 KB

File metadata and controls

49 lines (31 loc) · 1.04 KB

API Learning Map

全体像

URL
  -> URLComponents
  -> URLRequest
  -> URLSession
  -> Response
  -> JSONDecoder
  -> Model
  -> ViewModel / View

URL

通信先を表す型です。文字列から作る場合は optional になるため、失敗する可能性を考える必要があります。

URLComponents

URL を部品として扱うための型です。query parameter を安全に追加したいときに使います。

URLRequest

通信の設定を持つ型です。

主な設定:

  • HTTP method
  • header
  • timeout
  • body

URLSession

実際の通信を行う型です。data(for:) などを使い、response と data を受け取ります。

Response

HTTP status code を確認します。成功と失敗を分けて扱うために重要です。

JSONDecoder

JSON を Swift の model に変換します。decode に失敗した場合の error handling も必要です。

ViewModel / View

通信結果を UI に表示する場合、loading、error、data を状態として持つ設計が必要です。