9-modul · 5-dars: HATEOAS · Spring Data Rest

Daraja: Ilg'or

HATEOAS · Spring Data Rest. Spring Boot bo‘yicha nazariya, amaliy namuna va mustaqil mashq.

Tushuntirish

## Dars maqsadi HATEOAS · Spring Data Rest tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.

## Nazariya HATEOAS representation bilan resursning mumkin bo'lgan keyingi amallariga havolalarni qaytaradi. Client barcha URLlarni qattiq yozib qo'yish o'rniga link relationlardan foydalanishi mumkin. Spring HATEOASdagi EntityModel bitta obyekt va linklar, CollectionModel to'plam, PagedModel esa pagination metama'lumoti bilan to'plamni ifodalaydi. Hypermedia API evolyutsiyasiga yordam berishi mumkin, lekin client va serverda qo'shimcha murakkablik hamda kattaroq payload keltiradi. Faqat bitta oddiy SPA ishlatadigan APIga murakkab hypermedia qo'shishdan oldin foydasini baholang. Havolani chiqarmaslik server authorization o'rnini bosmaydi. Spring Data REST repositorylarni HTTP resurs sifatida chiqarishni tezlashtiradi, ammo maxfiy field, ruxsat va query chegaralari aniq nazorat qilinishi kerak. JPA Buddy IDE plugin sifatida mapping va kod yaratishga yordam beradi; runtime JPA provider emas. Generatsiya qilingan kodni schema, migration va biznes qoidalariga mosligini tekshirmasdan qabul qilmang.

## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/9-module%28Spring%20Boot%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-boot/reference/)

Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.

Kod misoli

var model = org.springframework.hateoas.EntityModel.of(dto);
model.add(org.springframework.hateoas.Link.of("/api/topics/42").withSelfRel());
// dto — faqat ommaga chiqarishga ruxsat etilgan fieldlar.

Keng tarqalgan xatolar

Mashqlar

Teglar: nazariya, modul-09, pdp

Interaktiv ko'rinish (viktorina, izohlar, tarix)