لینکهای مفید برای شرکت در مسابقه:
در طول مسابقه، میتوانید سوالهای خود را از قسمت «سؤال بپرسید» مطرح کنید.
تیم انبوهفروشان مشرقزمین قصد دارد سامانهای تحتوب برای مدیریت آسانتر فروشگاهشان راهاندازی کند. آنها تصمیم گرفتهاند تا وبسرویسشان را با استفاده از Spring Boot پیادهسازی کنند. نیازمندیها از قبل بهطور دقیق مشخص شدهاند، اما هنوز برنامهنویسی به تیم آنها اضافه نشده است. از شما میخواهیم تا نسخهی اولیهی این وبسرویس را پیادهسازی کنید.
پروژهی اولیه را از این لینک دانلود کنید.
ir.digipay.bulkshop
شامل موجودیتهای JPA برنامه است که مطابق با schema دیتابیس طراحی شدهاند. شناسه (id
) موجودیتها بهصورت خودکار توسط Hibernate تولید میشود.CustomerEntity
: از این کلاس برای نگهداری اطلاعات هر مشتری استفاده میشود.ProductEntity
: از این کلاس برای نگهداری اطلاعات هر محصول استفاده میشود.OrderEntity
: از این کلاس برای نگهداری اطلاعات هر سفارش استفاده میشود.ir.digipay.bulkshop.api
شامل کلاسهایی برای مدیریت ورودیها و خروجیهای API است.ir.digipay.bulkshop.rest
شامل REST controller های برنامه است. کنترلر مربوط به آدرس /
برای تست برنامه در کلاس IndexRestEnpoint
پیادهسازی شده است. سایر کنترلرها را در این بسته پیادهسازی کنید.تعدادی وبسرویس REST مطابق نیازمندیهای زیر باید پیادهسازی شود:
آدرس | عنوان |
---|---|
GET /api/products |
دریافت اطلاعات محصولات |
POST /api/products |
ایجاد محصول |
GET /api/products/{id} |
دریافت اطلاعات یک محصول |
PUT /api/products |
ویرایش اطلاعات یک محصول |
GET /api/customers |
دریافت اطلاعات مشتریان |
POST /api/customers |
ایجاد مشتری |
GET /api/customers/{id} |
دریافت اطلاعات یک مشتری |
PUT /api/customers |
ویرایش اطلاعات یک مشتری |
GET /api/orders |
دریافت اطلاعات سفارشات |
POST /api/orders |
ایجاد سفارش |
GET /api/orders/{id} |
دریافت اطلاعات یک سفارش |
اطلاعات همهی محصولات در قالب یک آرایه برگردانده میشود:
یک محصول با اطلاعات اولیهی دادهشده ایجاد میشود و شناسهی آن برگردانده میشود:
شناسهی محصول بهعنوان ورودی داده میشود و اطلاعات محصول برگردانده میشود:
اگر محصولی با شناسهی واردشده موجود نباشد، پاسخ باید بهصورت زیر باشد:
اطلاعات جدید محصول داده میشود و پس از بهروزرسانی اطلاعات محصول، پاسخی با کد 204
برگردانده میشود:
اگر محصولی با شناسهی واردشده موجود نباشد، پاسخ باید بهصورت زیر باشد:
اطلاعات همهی مشتریان در قالب یک آرایه برگردانده میشود:
یک مشتری با اطلاعات اولیهی دادهشده ایجاد میشود و شناسهی آن برگردانده میشود:
اگر مشتریای با نام کاربری دادهشده از قبل موجود باشد، پاسخ باید بهصورت زیر باشد:
شناسهی مشتری بهعنوان ورودی داده میشود و اطلاعات مشتری برگردانده میشود:
اگر مشتریای با شناسهی واردشده موجود نباشد، پاسخ باید بهصورت زیر باشد:
اطلاعات جدید مشتری داده میشود و پس از بهروزرسانی اطلاعات مشتری، پاسخی با کد 204
برگردانده میشود:
اگر مشتریای با شناسهی واردشده موجود نباشد، پاسخ باید بهصورت زیر باشد:
اطلاعات همهی محصولات در قالب یک آرایه برگردانده میشود:
یک سفارش با اطلاعات دادهشده ایجاد میشود، مقدار موجودی محصول به اندازهی تعداد واردشده کم میشود و شناسهی سفارش برگردانده میشود:
اگر مشتری یا محصولی با شناسهی واردشده موجود نباشد، پاسخ باید بهصورت زیر باشد:
اگر مقدار فیلد count
کوچکتر یا مساوی صفر باشد، پاسخ باید بهصورت زیر باشد:
اگر مقدار count
بزرگتر از موجودی فعلی محصول باشد، پاسخ باید بهصورت زیر باشد:
شناسهی سفارش بهعنوان ورودی داده میشود و اطلاعات سفارش برگردانده میشود:
اگر سفارشی با شناسهی واردشده موجود نباشد، پاسخ باید بهصورت زیر باشد:
ir.digipay.bulkshop
هستید.پس از پیادهسازی موارد خواستهشده، پوشهی src
پروژه را زیپ کرده و ارسال کنید. توجه داشته باشید که فقط تغییرات اعمالشده در پوشهی src/main/java/ir.digipay.bulkshop
در نظر گرفته میشوند.