⚔️CRUD ოპერაციები
რა არის CRUD ოპერაციები
CRUD არის აკრონიმი, და ის გულისხმობს 4 ოპერაციას, რომლებიც აუცილებელია ყოველი აპლიკაციისთვის რომელიც მონაცემთა ბაზებთან ან რაიმე სახის storage-თან მუშაობს. ეს ოთხი ოპერაცია არის შემდეგი: create, read, update, delete. ამ სტატიაში განხილულია ლარაველის კონვენციები CRUD ოპერაციებთან დაკავშირებით. კონკრეტულად თუ როგორი ფორმატით უნდა გვეწეროს შესაბამისი როუტები და რა მეთოდები უნდა გააჩნდეთ შესაბამის კონტროლერებს. მოდი შევქმნათ ძალიან მარტივი აპლიკაცია, რომელსაც შეეძლება პოსტების ბაზიდან წამოღება, ჩაწერა, განახლება, და წაშლა. ჩვენ გვაქვს Post მოდელი და შესაბამისი მიგრაცია. Post-ს გააჩნია მხოლოდ 2 პარამეტრი 'title' და 'body'. რომლის შესაბამისი მიგრაციაც და მოდელიც შემდეგნაირად გამოიყრება:
Webის როუტებთან დაკავშირებული კონვენციები
როუტები და კონტროლერის მეთოდები სტანდარტულ აპლიკაციასში, სადაც ვაბრუნებთ გარკვეულ View ებს და ასევე აღვწერთ ბაზასთან მუშაობის ლოგიკას.
ამ შემთხვევაში როუტების აღსაწერად ჩვენ ვმუშაობთ web.php ფაილში, და კონტროლერებს ვქმით app/Http/Controllers/ - დირექტორიაში
ხშირი არის შემთხვევა როდესაც ხელით ვქმნით ადმინპანელს. შესაბამისი კონტროლერები სასურველია ჩავყაროთ Admin დირექტორიაში. ამისათვის კონტროლერის შექმნისას შეგვიძლია შემდეგი ბრძანება გმაოვიყენოთ php artisan make:controller Admin/FooController ხოლო იმპორტის კომფლიქტის თავიდან ასარიდებლად კი დავაიმპორტოთ ალიასით
API-ის როუტებთან დაკავშირებული კონვენციები
წინა მაგალითისაგან განსხვავებით როდესაც ჩვენ გვინდა მხოლოდ API-ს შექმნა, ამჟამად უკვე აღარ გვიწევს View ების დაბრუნება და ჩვენს API-ის ექნება შემდეგი სახე:
ამ შემთხვევაში როუტების აღსაწერად ჩვენ ვმუშაობთ api.php ფაილში, და კონტროლერებს ვქმით app/Http/Controllers/Api - დირექტორიაში
იმისათვის რომ ჩვენი კონტროლერი თავიდანვე შესაბამის დირექტორიაში შეიქმნას შეგვიძლია მისი შექმნისას არტისანის ბრძანებაშივე მივუთითოთ სასურველი დირექტორია. (ჩვენს შემთხვევაში API)
php artisan make:controller Api/FooController
ეს სტატია ეხება მხოლოდ ქრუდ ოპერაციებს, ანუ ოეპრაციებს რომელიც უშუალოდ დაკავშირებულია მონაცემის ბაზაში ჩაწერის, წაკითხვის, განახლებისა და წაშლის ფუნქციონალთან. შესაბამისად სხვა სახის ლოგიკის იმპლემენტაციისას მაგალითად როგორიც არის ავტორიზაცია რეგისტრაცია და ლოგაუთი არ არის საჭირო, და პირიქით ცუდიც კია რო კონტროლერის მეთოდებს დავარქვათ ასეთი სახელები
სტატუს კოდები
200
- წარმატებით შესრულდა და response-ში რაიმე მონაცემებს ვაბრუნებთ201
- წარმატებით შეიქმნა ჩანაწერი, და ვაბრუნებთ შესაბამის მონაცემებს204
- ოპერაცია წარმატებით განხორციელდა, და არაფერს ვაბრუნებთ401 - არაავტენტიფიცირებული (არა ხარ დალოგინებული)
403 - Forbidden არა ხარ ავტორიზირებული (ხარ ავტენტიფიცირებული მაგრამ არ გაქვს უფლება)
404
- მოცემული ენდფოინთი არ არსებობს, ან მიუწვდომელია422
- მოგვეწოდა არავალიდური მონაცემები (Form Request ავტომატურად აბრუნებს ამ სტატუს კოდს როდესაც ვალიდაციას ვერ გაივლის)
Last updated