URL
-> URLComponents
-> URLRequest
-> URLSession
-> Response
-> JSONDecoder
-> Model
-> ViewModel / View
通信先を表す型です。文字列から作る場合は optional になるため、失敗する可能性を考える必要があります。
URL を部品として扱うための型です。query parameter を安全に追加したいときに使います。
通信の設定を持つ型です。
主な設定:
- HTTP method
- header
- timeout
- body
実際の通信を行う型です。data(for:) などを使い、response と data を受け取ります。
HTTP status code を確認します。成功と失敗を分けて扱うために重要です。
JSON を Swift の model に変換します。decode に失敗した場合の error handling も必要です。
通信結果を UI に表示する場合、loading、error、data を状態として持つ設計が必要です。