JavaRush /جاوا بلاگ /Random-SD /بهار خوفناڪ نه آهي. توهان جي REST کي سنڀاليو

بهار خوفناڪ نه آهي. توهان جي REST کي سنڀاليو

گروپ ۾ شايع ٿيل
مضمونن جي چڪر جو مواد ڪنهن ٻئي جي ڪم کي ٻيهر استعمال ڪرڻ ڪنهن به ڊولپر لاءِ هڪ مقدس معاملو آهي 😌 اڳتي وڌڻ لاءِ، توهان کي ڪمپيوٽر نيٽ ورڪ جي بنيادي ڳالهين کي سمجهڻ جي ضرورت آهي، هتي مضمونن جو هڪ سلسلو آهي . مکيه نقطن تي ڌيان ڏيو: HTTP ڪيئن ڪم ڪري ٿو، ڇا GET، POST، PUT آهن، جوابي حالتون، MVC، JSON ۽ سيريلائيزيشن بابت الڳ الڳ پڙهو . اهو servlets سان تجويز ڪيل مثال تي عمل ڪرڻ لاء ڪارائتو ٿيندو، اهو توهان جي دل سان بهار بوٽ سان پيار ڪرڻ ۾ مدد ڪندو. مثال اسپرنگ بوٽ ايپليڪيشن هن سيريز مان بلڪل سادو آهي، پر اهو توهان کي MVC جي جوهر کي سمجهڻ ۾ مدد ڏيندو. هيٺ ڏنل هڪ وڌيڪ دلچسپ منصوبي جي لنڪ هوندي. REST ۽ بهار ۾ ان جي استعمال کان واقف ٿيڻ لاءِ، اهي ٽي مضمون پڙهو . پهرين آرٽيڪل ۾ توهان پڙهندا ته REST ڇا آهي. ٻيو مضمون درخواستن ۽ جوابن جي باري ۾ ڳالهائيندو آهي، ضرور پڙهو ۽ ڪامريڊ فيڊل جي تبصري کي نوٽ ڪريو. ٽيون مضمون بهار ۾ عمل درآمد جو هڪ عملي مثال پيش ڪندو، ايپليڪيشن ٺاهڻ جو طريقو گهڻو مختلف ناهي (اهو ڏسڻ ۽ موازنہ ڪرڻ مفيد آهي)، ان تي عمل ڪريو. هن جڳهه تي ڌيان ڏيو جتي اهي HttpStatus، ResponseEntity بابت ڳالهائي رهيا آهن <?> (جيڪڏهن <?> مونجهارو آهي، ته پوء باب 13 پڙهو. "جاوا. هڪ شروعات ڪندڙ گائيڊ"، هيربرٽ شيلڊٽ کان جنرلائيزيشنز، ساڳئي مضمون ۾ 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 اسان هڪ ڪنٽرولر پيڪيج ٺاهينداسين (ايم وي سي نموني جا ڪنٽرولر هتي واقع هوندا). هڪ ڪلاس پبلڪ ڪلاس پراڊڪٽ ڪنٽرولر ٺاهيو
@RestController
@RequestMapping("/speculation")
public class ProductController {

}
@RestController تشريح بهار ڏانهن اشارو ڪري ٿي ته هي هڪ آرام ڪنٽرولر آهي. @RequestMapping - سڀئي ڪنٽرولر طريقا هڪ URI سان درخواستون وصول ڪندا جيڪي تشريح بريڪٽس ("/ speculation") ۾ بيان ڪيل اسٽرنگ سان شروع ٿيندي. اسان ڪلاس ۾ هيٺين طريقي سان لکندا آهيون
@GetMapping("/simple")
public String simple(){
    return "Легкий GET requestик";
}
اسان پروجيڪٽ شروع ڪريون ٿا، برائوزر لائن ۾ ٽائپ ڪريو: http://localhost:8080/speculation/simple اسان کي جواب ملي ٿو: Easy GET request ڪجھ وضاحتون: 1. اسان ھڪڙو ڪلاس ٺاھيو آھي جيڪو @RestController کي ڪنٽرولر طور نشان لڳايو، اشارو ڪيو ان ڏانهن رستو @RequestMapping ("/ speculation") - هي تشريح اختياري آهي؛ ان کان سواءِ، رستو "/" سان شروع ٿيندو. 2. اسان ھڪڙو طريقو ٺاھيو آھي، جنھن تي عمل ڪيو ويندو آھي، ھڪڙو اسٽرنگ (لائيٽ GET درخواست) واپس ڪندو آھي، ان کي @GetMapping تشريح سان نشان لڳل ھوندو آھي (جيڪو ھي طريقو خاص طور تي GET درخواستن لاءِ آھي) ۽ رستي ڏانھن اشارو ڪيو ھو ("/سادو") 3. اسان پورٽ 8080 تي پروجيڪٽ (سرور) شروع ڪيو، ۽ ايڊريس تي هڪ GET درخواست ڪئي: server/controller/method (http://localhost:8080/speculation/simple) 4. The Public String simple(){ return "آسان GET درخواست ڪندڙ" طريقو هن درخواست لاء ڪم ڪيو؛ } 5. طريقي جو نتيجو برائوزر ڏانهن واپس ڪيو ويو اسٽرنگ جي صورت ۾ "Easy GET request". خير، اها هڪ شروعات آهي! سڀ کان وڌيڪ دلچسپ مضمون توهان جي انتظار ۾ آهن. مٿي ڏنل مواد تي عبور حاصل ڪرڻ ۾ هڪ ڏينهن کان وڌيڪ وقت لڳندو، هتي جلدي ڪرڻ جي ضرورت ناهي، هي موضوع تمام اهم آهي ۽ سمجهڻ جي ضرورت آهي، ”هاٿي کي حصن ۾ کائو“. ٽريننگ لاءِ (مادي تي عبور حاصل ڪرڻ کان پوءِ): قياس جي ايپليڪيشن ڪنٽرولر کي مڪمل ڪريو . طريقا ٺاھيو: 1) id ذريعي ھڪڙي پراڊڪٽ جي ڳولا ڪريو productService.findById() طريقو استعمال ڪريو؛ مثال جي پيداوار
{
        "id": 1,
        "name": "Картофель",
        "purchasePrice": 20,
        "packaging": null,
        "salePrice": null
 }
باقي ڪنٽرولر طريقن کي لاڳو ڪرڻ کان پوء، سوچيو: "آخري ٻه فيلڊ نال ڇو آهن؟ ڇا ڪرڻ جي ضرورت آهي ته جيئن اتي ڪجهه قدر موجود آهن؟" 2) اسٽور فرنٽ تي سڀئي پراڊڪٽ ڏسو: سڀ پراڊڪٽ ڳولڻ لاءِ، استعمال ڪريو productService.findAll() طريقو؛ پيڪنگنگ ۽ مارڪ اپ فيلڊ ۾ ڀرڻ لاءِ، استعمال ڪريو 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) id جي ذريعي هڪ پراڊڪٽ کي حذف ڪرڻ هن کي ڪرڻ لاء، پهريون لاڳو ڪريو ProductService ۾ هڪ طريقو جنهن تي مشتمل آهي 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 اسٽيٽس کي واپس ڪرڻ گهرجي. جيڪڏهن توهان کي هن طريقي سان مسئلو آهي، توهان گوگل ڪري سگهو ٿا "پٽ درخواست جاوا"، ڪنهن به انٽرنيٽ کي اڃا تائين منسوخ نه ڪيو آهي) ڪنٽرولرز سان ڪم ڪرڻ اتي ختم نٿو ٿئي، اڃا به ڪيترائي موضوع آهن ...
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION