9-modul · 7-dars: OpenAPI · Swagger
Daraja: Ilg'or
OpenAPI · Swagger. Spring Boot bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi OpenAPI · Swagger tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya OpenAPI HTTP API shartnomasini machine-readable ko'rinishda ta'riflaydi: paths, operations, parameters, schemas, responses va security schemes. Swagger shu ekotizimdagi UI va boshqa vositalar nomidir. OpenAPI spetsifikatsiya, Swagger UI esa uni o'qib interaktiv hujjat ko'rsatadigan dastur; bir xil tushuncha emas. springdoc Spring controller va model metama'lumotlaridan OpenAPI hujjatini hosil qilishga yordam beradi. Guruhlash uchun path yoki package bo'yicha GroupedOpenApi konfiguratsiyasi ishlatiladi. Versiya Spring Boot major versiyasiga mos bo'lishi kerak. Hujjatda required field, validation va 400/401/403/404 kabi javoblarni ko'rsating. Avtomatik hujjat contract haqiqatan bajarilishini kafolatlamaydi: test response bilan schema mosligini tekshirsin. Production Swagger UI ochiq bo'lsa faqat ommaviy ma'lumot chiqsin; token, example parol va ichki admin ma'lumotlarini joylamang. Breaking change bo'lsa versionlash va client migratsiyasi rejasini tuzing.
## 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
@org.springframework.context.annotation.Bean
org.springdoc.core.models.GroupedOpenApi publicApi() {
return org.springdoc.core.models.GroupedOpenApi.builder()
.group("public").pathsToMatch("/api/v1/topics/**").build();
}
Keng tarqalgan xatolar
- Swaggerda 200 ko'rinishi barcha error va authorization holatlari hujjatlashtirilganini bildirmaydi.
Mashqlar
- Bitta endpointning required fieldlari va 400 error formatini OpenAPI hamda test bilan bir xil qiling.
- Bitta endpointga 400 va 401 javoblarini ham OpenAPI da hujjatlashtiring.
Teglar: pdp, nazariya, modul-09