Closed campbel2525 closed 1 week ago
@campbel2525 お疲れ様です。 今この開発に取り組んでいるのですが、手こずっております。 今回作るものは、app/crudsのようなディレクトリの中に記述し、 それを、app/routers/ のなかのファイルで実行する感じの認識であってますでしょうか?
@nabecamel
今この開発に取り組んでいるのですが、手こずっております。
いきなりapi作るのは難しいですよね もしよければもっと簡単なタスク用意しましょうか?
ユーザー関連のapiに電話番号を付け足すなどはどうですか?
今回作るものは、app/crudsのようなディレクトリの中に記述し、 それを、app/routers/ のなかのファイルで実行する感じの認識であってますでしょうか?
これは人それぞれの好みになりますね。 僕の場合は、「routerに直接書く」か「共通化したいならモデルに書く」がいいと思っています それぞれの理由は下記です。
[routerに直接書く理由] restapiを意識しているため、apiでやることは結局
とはいえ複雑になることあります。 例えば、決済機能の実装とか、一回のapiで複数のテーブルを条件によって更新など このような場合は、apps/usecasesにまとめるのがいいと考えています
[モデルに書く理由] 共通なものはどっかにまとめる必要はあります。 それがapp/crudsなのかapp/modelsという異話だと思うのですが、app/modelsが用意されているのだからapp/modelsに書けばいいんじゃないかといった単純な理由です
この辺は人の好みによるし明確な答えはないように思いますのでお任せします。フォルダ構成を色々考えてみるのも勉強になりそうですね。 この辺は「GoFのデザインパターン」とかが参考になると思います。(ただあまりのめり込むのは時間の無駄になりそうなので注意です。まずはプログラムを書けるようになった方がいいとは思います)
[参考] ちなみに僕が前いたfastapiのプロジェクトではapp/crudsフォルダでまとめていましたよ phpのlaravelでは、モデルに書いている案件もあったし、コントローラーに書いていた案件もあったし、リポジトリパターンを使用していた案件もありました!
@campbel2525 返信ありがとうございます! 丁寧に説明いただき解像度が上がりました! なるほど、、、色々書き方があるのですね・・・! 少し難しいですが、どこにどんなファイルを作るかが分かればある程度作れる気がしてます、、!
@nabecamel
こんな感じです!
作成するファイル
修正するファイル
@campbel2525 夜分遅くに失礼します! ありがとうございます! 取り組んでみます!
タスクのゴール
商品一覧取得APIを作る エンドポイントは
get /api/products
一旦検索機能はなしでOK
レスポンスのイメージは下記
restapiの概要
こちらに記載してあります https://github.com/nabecamel/ec_demo/issues/10