2.FreshCode-ユーザー認証による商品管理API
課題項目の概要
チャレンジレコードライブラリリンクの発行
APIドキュメントリンク
課題の内容
ログイン機能
ユーザ認証/認証の実装
商品の追加/変更/削除はadmin権限を持つユーザーのみ可能です
- admin 예시
EMAIL: [email protected]
PASSWORD: admin
ROLE : [admin]
商品管理機能
商品の詳細と完全なリストを表示
一般ユーザーと管理者権限の分離
ユニットテスト
データベース使用RDBMS
ログイン機能はJWT認証を採用
SwagerまたはPostmanを使用したAPIテスト
まず,モデリング時にusersテーブルにrole列を追加してadminとuserを区別する方法を考えた.
チーム構造と職責
バックエンド×6
私の3つの機能実装チーム->DBモデリング、ログイン、商品管理、ユニットテスト、Postmanドキュメント
3名の配置チーム->開発と配置の優先パラメータ、READMEの作成
6人で課題を分担すると、担当する役が少なすぎて、かえって効率が悪いと思います.また,各課題は個人が把握し成長できる部分に集中している.そのため、プロジェクトは大きく2つの部分に分けられ、3人で1つのチームを構成し、対位プログラミングで行われます.
デプロイメントグループの担当コンポーネントは少ないかもしれませんが、aws、dockerをさらに学ぶ機会にすることにしました.どうせ毎週2つの課題をやっているので、交代で役を受ければいいと思います.
テクノロジースタックの使用
開発プロセス
初日-モデリングと初期設定
機能を実現するために必要な最低限のモデリングを記述した.商品には様々な選択肢やラベルがあることを前提に関係を設定しています.
Tagの場合、実際のサイトでは、商品ごとに1つしか見られず、カテゴリと区別され、フィルタリングの役割を果たしています.
そのため、1つの商品に複数のラベルを付けることができる関係が設定されています.
Usersテーブルのroleフィールドにはadminまたはuserという値を含めることができます.
初期設定時には、
SECRET_KEY
とDATABASES
の情報を環境変数に設定します.->デプロイの場合、デバッグモードと許可されているホストのセクションを変更する必要があります.次に、デプロイの設定を個別に管理する必要があります.
2日目-製品管理機能の実装
チームメンバーとDjango appとviewの設計を事前に検討し、SignInView、ProductView、ProductDetailViewを3つの部分に分け、それぞれ開発を担当した.私が担当している部分はProductDetailViewで、商品の詳細の表示、修正、削除機能を提供しています.
一番悩んでいる部分は商品修正機能です.HTTP patchメソッドリクエストを受信し、djangoクエリーセットupdateメソッドで実装しようとします.修正するデータのみbodyに書き込む場合は、更新が必要です.
データ内のすべてのキー値がgetを受信していない場合は、defaultをNoneに設定しますか?
->状況の数を考慮して、実装できますが、コードが長すぎます.
updateのパラメータとして、**データを加えて実現します.
->dict形式のデータをkey=value形式で開き、キーワードパラメータに入れます.
->以前のプロジェクトでfilter機能を実現する方法により、コード長を著しく低減できます.
感じと改善
チームプロジェクト
課題内容自体はそれほど難しくありませんが、短期間で成果を出す部分が一番難しいチームメンバーが多いです.モデリングからそれぞれの意見があり,機能を実現する方法も必然的に異なる.一人で忙しくて、最後に他のチームメンバーに協力するために修正したことがあります.開発が速くて遅い人もいるかもしれません.格差を縮める方法と努力を考えるうちに、チームワーク能力が育成されたようだ.
単純に開発を行うのと開発チームで協力するのとは異なることが理解できる.一人でもっと勉強して、もっと貢献する態度は今回の課題と合わない.他の同僚と力を合わせ、共に成長し、共に学ぶという気持ちで、残りの課題に直面しなければならない.
以前習った技能を応用する
NoSleepPlaceチームプロジェクトでは,Dictionary理解を利用したフィルタリング機能を実現した.この過程で**kwagsパラメータとpacking,unpackingの概念を学び,今回は応用できる.
JSONのようなディック形式のデータオブジェクトをDjangoクエリセットメソッドのパラメータとして使用する場合、それを
**data
に入れ、そのデータを開き、key=value
の形式で入力します.Reference
この問題について(2.FreshCode-ユーザー認証による商品管理API), 我々は、より多くの情報をここで見つけました https://velog.io/@palza4dev/2차-과제-후기-사용자-인증에-따른-상품-관리-APIテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol