質問: "POST" ``` このような分け方で問題ないですか? 個人的にControllerの部分があまりわかりません。 アドバイスお願いします。
回答: MVCが絡む話なのか自分はちょっとわかりませんが、 今回のケースでは、APIに送る内容、受け取る内容がJSON形式のようですので、その兼ね合いでModelとおっしゃっているようなCodableな構造体を用意しているだけですよね (=欲しい情報は「ひらがな」だけで、構造体そのものは一時的なもので捨てちゃっても構わないもの)。 このAPIを利用する側にしてみたら > > func hiranaga(kanji: String) -> String { ... } > > > というような漢字→ひらがな変換関数があればいいわけですよね。 実際はHTTP処理は非同期なので(?)、 > > func hiragana(kanji: String, completionHander: (Error?, String) -> ()) > > > みたいな宣言になると思うのですが。 自分だったら ``` class GooAPI { static func hiragana(kanji: String, completionHander: (Error?, String) -> ()) { // ここでhttp処理して完了したらcompletionHanderを呼び出す } } ``` といったUtilityクラスっぽいもの(※Utiltiyクラスそのものには賛否ありますが今回は名前空間の代わりに使っています)を用意して、JSON化に必要なPostDataやReceiveData的な構造体はfileprivateか、クラス内のprivateな構造体にして隠蔽してしまうと思います(外部でも構造体が必要になったらpublicにすれば良いかなと)。 これのメリットは一度作ってしまえば、いろんなViewControllerから参照でき、他のプロジェクトでも流用しやすい点です。 ※この辺はあくまで自分のやり方ですので、他の人がどうやっているかは知りません。