تمرین‌های آموزشی

دستگرمی آزمون عملی وب

مقدمه

این سوال در واقع یک دستگرمی برای آزمون عملی جاواکاپ در بخش وب محسوب می‌شود. در این پروژه از جاوا 8 و Spring Boot 2.1.9 و Maven و Lombok 1.18.10 استفاده شده است.

توصیه اکید می‌شود، وابستگی‌های این پروژه را در لپ‌تاپی که در آزمون استفاده خواهید کرد، دریافت کنید تا در آزمون درگیر دریافت وابستگی‌ها (dependencies) نشوید. همچنین پلاگین Lombok را در IDE خود نصب کنید.

فایل پروژه را از اینجا دانلود کنید.

علاوه بر قالب اولیه پروژه، تست‌هایی که با آن داوری می‌شوید نیز در فایل‌هایی که دانلود می‌کنید وجود دارد؛ به گونه‌ای پیاده‌سازی را انجام دهید تا تمامی تست‌ها با موفقیت اجرا (پاس) شوند.

پیش‌نیازها

  • دانش اولیه Maven
  • دانش اولیه درباره Lombok
    • این مطلب در جاواکاپ Lombok را آموزش داده است.
    • در نسخه‌های اخیر بعضی از IDE ها، (مثل IntelliJ IDEA) پلاگین Lombok به صورت پیش‌فرض فعال است. اگر از Eclipse استفاده می‌کنید، باید این پلاگین را نصب کنید. برای نصب آن ابتدا JAR File مربوطه را دانلود کنید و سپس این jar را اجرا کنید (با کمک java -jar) و در صفحه‌ای که باز می‌شود، آدرس Eclipse را ذکر کنید.
  • دانش اولیه درباره Spring و Spring-Boot 
  • دانش اولیه JPA (در این پروژه از spring-data-jpa استفاده شده)

خلاصه نیازهای مسأله

  • قابلیت ذخیره اطلاعات شخص (Person) در پایگاه‌داده
  • ارایه یک وب‌سرویس REST برای ذخیره اطلاعات شخص

شرح مسأله

  1. یک وب‌سرویس REST با آدرس person/  که اطلاعات یک شخص (person) را دریافت و در پایگاه داده ذخیره می‌کند. این وب‌سرویس، یک JSON به عنوان ورودی می‌گیرد و یک JSON هم به عنوان خروجی برمی‌گرداند. در JSON ورودی، اطلاعات یک شخص شامل فیلدهای firstName و lastName و nationalCode (که همگی از نوع رشته هستند) قرار می‌گیرد. در JSON خروجی فقط یک فیلد با نام personId قرار خواهد داشت (از نوع Long) که حاوی شناسه فردی است که اطلاعاتش ذخیره شده است.
  2. برای پیاده‌سازی وب‌سرویس فوق (person/) ، کلاسی بسازید که واسط PersonService را implement می‌کند و در متد save منطق موردنظر (ذخیره اطلاعات یک شخص) را پیاده‌سازی کند.

ساختار پروژه

بسته controller

کلاس‌های سرویس‌های REST در این بسته قرار می‌گیرد (برای پیاده‌سازی از RestController@ استفاده کنید).

بسته domain

کلاس‌های حوزه مساله در این بسته قرار می‌گیرند. این بسته شامل موارد زیر است:

  • سرویس‌ها: منطق اصلی برنامه در آن قرار می‌گیرد.
  • موجودیت‌ها (بسته entity): در واقع موجودیت‌های پایگاه‌داده هستند و به کمک JPA پیاده‌سازی می‌شوند.

بسته repository

کلاس‌های مربوط به دسترسی به پایگاه‌داده در این بسته قرار می‌گیرد (برای پیاده‌سازی از spring-data-jpa استفاده کنید).

توجه:

  • کلاس‌هایی در پروژه وجود دارند که از annotationهای لومبوک در آن‌ها استفاده شده است. با تغییر این annotationها ممکن است در تست‌ها با خطای کامپایل روبرو شوید.

آنچه باید آپلود شود

باید پوشه src/main/java را زیپ کرده و ارسال کنید (فقط فولدر src را بفرستید که در آن فقط فولدر main است که در آن فقط فولدر java قرار دارد). به عبارت دیگر با unzip کردن این فایل، ساختار زیر باید وجود داشته باشد:

src
  main
    java
      ir.javacup.demo

برای داوری تمرین، می‌توانید پاسخ خود را در سایت Quera به نحوی که در بالا گفته شد، بارگذاری کنید.

برای آشنایی با نحوه‌ی ارسال پاسخ در Quera، این مطلب را مطالعه کنید.


با ما همراه باشید:

آدرس کانال تلگرام: IranianJavaDevelopers@

آدرس اکانت توییتر: JavaCupIR@

آدرس صفحه اینستاگرام: javacup.ir

آدرس گروه لینکدین: Iranian Java Developers

نوشته های مشابه

‫4 دیدگاه ها

    1. سلام
      اصلاح شد.
      اگر به لینکی که برای آپلود پاسخ در کوئرا گذاشتیم، مراجعه می‌کردید میتوانستید بدون مشکل از همانجا فایل را دانلود کنید.

    1. سلام
      اصلاح شد.
      اگر به لینکی که برای آپلود پاسخ در کوئرا گذاشتیم، مراجعه می‌کردید میتوانستید بدون مشکل از همانجا فایل را دانلود کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا