JavaRush /جاوا بلاگ /Random-UR /بہار خوفناک نہیں ہے۔ اپنے آرام کو کنٹرول کرنا

بہار خوفناک نہیں ہے۔ اپنے آرام کو کنٹرول کرنا

گروپ میں شائع ہوا۔
مضامین کے چکر کے مشمولات کسی اور کے کام کو دوبارہ استعمال کرنا کسی بھی ڈویلپر کے لیے ایک مقدس معاملہ ہے 😌 آگے بڑھنے کے لیے، آپ کو کمپیوٹر نیٹ ورک کی بنیادی باتوں کو سمجھنا ہوگا، یہاں مضامین کی ایک سیریز ہے ۔ اہم نکات پر دھیان دیں: HTTP کیسے کام کرتا ہے، GET، POST، PUT کیا ہیں، رسپانس سٹیٹس، MVC، JSON اور سیریلائزیشن کے بارے میں الگ سے پڑھیں ۔ سرولیٹس کے ساتھ مجوزہ مثال کو لاگو کرنا مفید ہوگا، اس سے آپ کو بہار کے بوٹ کو دل سے پسند کرنے میں مدد ملے گی۔ اس سیریز سے اسپرنگ بوٹ ایپلی کیشن کی مثال کافی آسان ہے، لیکن یہ آپ کو MVC کے جوہر کو سمجھنے میں مدد کرے گی۔ ذیل میں مزید دلچسپ پروجیکٹ کا لنک ہوگا۔ REST اور بہار میں اس کے استعمال سے واقف ہونے کے لیے، یہ تین مضامین پڑھیں ۔ پہلے مضمون میں آپ پڑھیں گے کہ REST کیا ہے۔ دوسرا مضمون درخواستوں اور جوابات کے بارے میں بات کرتا ہے، کامریڈ فیڈل کے تبصرے کو ضرور پڑھیں اور نوٹ کریں۔ تیسرا مضمون موسم بہار میں عمل درآمد کی ایک عملی مثال پیش کرے گا، ایپلیکیشن بنانے کا طریقہ زیادہ مختلف نہیں ہے (دیکھنا اور موازنہ کرنا مفید ہے)، اسے لاگو کریں۔ اس جگہ پر دھیان دیں جہاں وہ HttpStatus، ResponseEntity <?> کے بارے میں بات کرتے ہیں (اگر <?> الجھن میں ہے، تو باب 13 پڑھیں۔ "جاوا. ایک ابتدائی رہنما"، ہربرٹ شیلڈٹ سے عمومیت)، اسی مضمون میں POSTMAN کے بارے میں پڑھا گیا ( مزید برآں اس کے بارے میں مختصر ویڈیو ) POSTMAN انسٹال کریں، آپ کو تمام فیچرز کی ضرورت نہیں ہے، دیکھیں کہ مختلف سوالات کیسے تخلیق کیے جاتے ہیں۔ مثال میں ٹرنری آپریٹرز ہیں ، اگر آپ بھول گئے ہیں تو اپنی میموری کو تازہ کریں۔ اس بات پر توجہ دیں کہ مثال کا مضمون @Autowired کا استعمال کرتے ہوئے بین انجیکشن کو کیسے لاگو کرتا ہے۔
@RestController
public class ClientController {

   private final ClientService clientService;

   @Autowired
   public ClientController(ClientService clientService) {
       this.clientService = clientService;
   }
}
آپ کو معلوم ہونا چاہیے کہ بہار 4.3 سے شروع ہونے والے، @Autowired تشریح کو خارج کیا جا سکتا ہے اگر کلاس میں صرف ایک کنسٹرکٹر ہو۔ فریم ورک خود ہی پتہ لگائے گا کہ کنسٹرکٹر میں بین کو لاگو کرنے کی ضرورت ہے۔ آپ اس سورس میں مزید پڑھ سکتے ہیں ۔ اور اگر آپ محتاط ہیں، تو آپ کو سروس پیکج کی ساخت کے بارے میں ایک سوال ہونا چاہیے ، یعنی: ایک انٹرفیس ClientService اور پبلک کلاس ClientServiceImpl کیوں ہے - یہ صحیح عمل ہے، بعد میں، ہم اس بارے میں بات کریں گے کہ اس کی ضرورت کیوں ہے اور ہم اسے استعمال کریں گے. یہ سب مضامین کے ساتھ ہے۔ پڑھنے سے پہلے لکھتے ہیں۔ جیسا کہ وہ کہتے ہیں: "کوڈ کے بغیر ایک دن نہیں!" نقطہ آغاز کے طور پر، آئیے ایک سادہ GET درخواست بنائیں۔ پچھلی بار ہم نے سبزیوں کی قیاس آرائیوں کے لیے درخواست لکھی تھی، گٹ کلون https://FromJava@bitbucket.org/FromJava/speculation.git git clone git@bitbucket.org:FromJava/speculation.git ایپلیکیشن کھولیں، اور پیکج ru میں۔ java. rush ہم ایک کنٹرولرز پیکج بنائیں گے (MVC پیٹرن کے کنٹرولرز یہاں موجود ہوں گے)۔ ایک کلاس پبلک کلاس پروڈکٹ کنٹرولر بنائیں
@RestController
@RequestMapping("/speculation")
public class ProductController {

}
@RestController تشریح موسم بہار کی طرف اشارہ کرتی ہے کہ یہ ایک آرام کنٹرولر ہے۔ @RequestMapping - تمام کنٹرولر طریقوں کو ایک URI کے ساتھ درخواستیں موصول ہوں گی جو تشریح بریکٹ ("/قیاس") میں متعین اسٹرنگ سے شروع ہوں گی۔ ہم کلاس میں درج ذیل طریقہ لکھتے ہیں۔
@GetMapping("/simple")
public String simple(){
    return "Легкий GET requestик";
}
ہم پروجیکٹ لانچ کرتے ہیں، براؤزر لائن میں ٹائپ کرتے ہیں: http://localhost:8080/speculation/simple ہمیں جواب موصول ہوتا ہے: Easy GET request چند وضاحتیں: 1. ہم نے ایک کلاس بنائی جس میں @RestController کو بطور کنٹرولر نشان زد کیا گیا، اشارہ کیا۔ اس کا راستہ @RequestMapping ("/ قیاس آرائی") - یہ تشریح اختیاری ہے؛ اس کے بغیر، راستہ "/" سے شروع ہوگا۔ 2. ہم نے ایک طریقہ بنایا ہے جس پر عمل درآمد ہونے پر، ایک سٹرنگ (Light GET درخواست) واپس کرتا ہے، اسے @GetMapping تشریح کے ساتھ نشان زد کیا گیا ہے (کہ یہ طریقہ خاص طور پر GET درخواستوں کے لیے ہے) اور طریقہ کار کی طرف اشارہ کیا ہے ("/سادہ") 3. ہم نے پروجیکٹ (سرور) کو پورٹ 8080 پر لانچ کیا، اور ایڈریس پر ایک GET کی درخواست کی: سرور/کنٹرولر/میتھڈ (http://localhost:8080/speculation/simple) 4. عوامی سٹرنگ سادہ(){ واپسی "Easy GET requester" طریقہ نے اس درخواست کے لیے کام کیا۔ } 5. طریقہ کار کا نتیجہ براؤزر کو سٹرنگ "Easy GET request" کی شکل میں واپس کر دیا گیا تھا۔ ٹھیک ہے، یہ ایک آغاز ہے! انتہائی دلچسپ مضامین آپ کے منتظر ہیں۔ اوپر دیے گئے مواد پر عبور حاصل کرنے میں ایک دن سے زیادہ وقت لگے گا، یہاں جلدی کرنے کی ضرورت نہیں ہے، یہ موضوع بہت اہم ہے اور اسے سمجھنے کی ضرورت ہے، "ہاتھی کو حصوں میں کھاؤ۔" تربیت کے لیے (مواد پر عبور حاصل کرنے کے بعد): قیاس آرائی کی درخواست کنٹرولر کو مکمل کریں ۔ طریقے بنائیں: 1) آئی ڈی کے ذریعہ پروڈکٹ تلاش کریں productService.findById() طریقہ استعمال کریں۔ مثال آؤٹ پٹ
{
        "id": 1,
        "name": "Картофель",
        "purchasePrice": 20,
        "packaging": null,
        "salePrice": null
 }
باقی کنٹرولر طریقوں کو لاگو کرنے کے بعد، سوچیں: "آخری دو فیلڈز خالی کیوں ہیں؟ کیا کرنے کی ضرورت ہے تاکہ وہاں کچھ قدریں موجود ہوں؟" 2) اسٹور فرنٹ پر تمام پروڈکٹس دیکھیں: تمام پروڈکٹس کو تلاش کرنے کے لیے پروڈکٹ سرویس فائنڈ آل() طریقہ استعمال کریں۔ پیکیجنگ اور مارک اپ فیلڈز کو پُر کرنے کے لیے استعمال کریں productService.pack(); productService.makeMoney(); آؤٹ پٹ میں JSON سرنی کی فہرست سازی کی مصنوعات پر مشتمل ہونا چاہئے، مثال:
[
    {
        "id": 1,
        "name": "Картофель",
        "purchasePrice": 20,
        "packaging": "Упаковано в лучшем виде",
        "salePrice": 100
    },
    {
        "id": 2,
        "name": "Морковь",
        "purchasePrice": 14,
        "packaging": "Упаковано в лучшем виде",
        "salePrice": 70
    }
]
3) ڈیٹا بیس میں ایک نئی مصنوعات شامل کرنا (پروڈکٹ شامل کریں: گوبھی اور تھوک خرید قیمت) استعمال کریں: productService.save()؛ طریقہ کو متعلقہ Http کی حیثیت واپس کرنی چاہیے۔ 4) کسی پروڈکٹ کو بذریعہ آئی ڈی ڈیلیٹ کرنا ایسا کرنے کے لیے، پہلے پروڈکٹ سرویس میں ایک ایسا طریقہ لاگو کریں جس میں productRepository.deleteById(); اور پھر، اسے کنٹرولر میں استعمال کریں۔ کنٹرولر کے طریقہ کار کو مناسب Http اسٹیٹس واپس کرنا چاہیے۔ 5) آئی ڈی کے لحاظ سے پروڈکٹ میں تبدیلی (مصنوعات کی تھوک قیمت اور پروڈکٹ کے نام میں تبدیلی) یہ آپریشن پچھلے سے زیادہ پیچیدہ ہوگا۔ سب سے پہلے ہمیں وہ پروڈکٹ تلاش کرنے کی ضرورت ہے جسے ہم id کے ذریعے تبدیل کرنا چاہتے ہیں productService.findById(); پھر، پائے گئے پروڈکٹ (آبجیکٹ) میں، فیلڈز کی ویلیو کو پوٹ ریکوسٹ (json_object) کے باڈی میں موصول ہونے والی آبجیکٹ کے فیلڈز کی ویلیو سے بدل دیں۔ یہ کچھ اس طرح کیا جا سکتا ہے:
найденный_товар = productService.findById(id);
найденный_товар.setName(an object_json.getName);
найденный_товар.setPurchasePrice(an object_json.getPurchasePrice);
اس کے بعد، تبدیل شدہ پروڈکٹ کو محفوظ کرنا ضروری ہے productService.save(found_product)؛ طریقہ کو متعلقہ Http کی حیثیت واپس کرنی چاہیے۔ اگر آپ کو اس طریقہ کار میں دشواری ہے تو آپ گوگل کر سکتے ہیں "put request java"، کسی نے ابھی تک انٹرنیٹ کو منسوخ نہیں کیا ہے) کنٹرولرز کے ساتھ کام کرنا یہیں ختم نہیں ہوتا، ابھی بھی بہت سے موضوعات آگے ہیں...
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION