Bu kitob sizni API (Application Programming Interface) dizayni bo'yicha noldan β "API nima va nega muhim?" degan savoldan β ekspert darajasiga olib chiqadi. HTTP protokolini chuqur o'rganib, REST tamoyillari (resurs modellashtirish, URI dizayni, status kodlari, xato dizayni, versiyalash), so'ng API'ning sifati va ishonchliligi (autentifikatsiya, avtorizatsiya, OWASP xavfsizligi, rate limiting, idempotentlik, keshlash), boshqa paradigmalar (GraphQL, gRPC, asinxron/webhook, real-time), hujjatlash va developer experience (OpenAPI, API gateway, contract testing), va nihoyat API hayot sikli, dizayn naqshlari hamda yakuniy kapston β to'liq API'ni noldan loyihalashga yetadi.
π§ Til-mustaqil kitob. Yaxshi API β bu sintaksis emas, shartnoma (contract). Shuning uchun bu kitob biror dasturlash tili yoki freymvorkka bog'lanmaydi: asosiy yuk HTTP so'rov/javoblar, JSON payloadlar, OpenAPI spetsifikatsiyasi va diagrammalarda. Tamoyillar Node, Python, PHP, Go, Java β har qanday tilda bir xil qo'llaniladi. Aniq freymvork implementatsiyasini Node.js, Laravel yoki Django kitoblarida ko'rishingiz mumkin; bu kitob esa dizayn qarorini o'rgatadi.
βοΈ HALOL eslatma. Bu kitob amaliy va standartlarga asoslangan: HTTP semantikasi (RFC 9110), xato formati (RFC 9457 Problem Details), OpenAPI 3.1+/3.2, OAuth 2.0/2.1, OWASP API Security Top 10 (2023) kabi obro'li manbalarga tayanadi. Standartlar va versiyalar vaqt bilan o'zgaradi (masalan OAuth 2.1 hali IETF draft) β kitob buni har joyda halol belgilaydi va rasmiy manbaga ishora qiladi. JSON va OpenAPI namunalari haqiqatan tekshirilgan (valid sintaksis); dizayn qarorlari esa kontekstga bog'liq trade-off sifatida taqdim etiladi, "har doim shunday qil" deb emas.
βΉοΈ Bu kitob siz HTTP va veb bilan asosiy tanishlik (so'rov-javob, brauzer-server, JSON) borligini hisoblaydi. Agar yangi bo'lsangiz, avval HTML & CSS va biror backend kitobini (Node.js / PHP / Python) ko'rib chiqing. Tizim darajasidagi kengroq dizayn uchun Dasturiy arxitektura kitobiga qarang β bu kitob uning API qatlamini chuqurlashtiradi.
Boblarni tartib bilan o'qing (01 β 02 β ...). Har qism oldingisiga tayanadi: HTTP asoslari β REST dizayni β sifat/xavfsizlik β paradigmalar β hujjatlash β hayot sikli.
Har bobdagi so'rov/javob namunalari va diagrammalarni diqqat bilan o'rganing β API dizayni ko'p jihatdan shartnoma va aloqa oqimini tasavvur qilish.
Har bir dizayn qarorida o'zingizdan so'rang: bu shartnoma mijoz uchun qulaymi? o'zgarganda nima sinadi? β bu yerda nimani nimaga almashtiryapman (trade-off)?
Har bobning "Mashqlar" bo'limini ishlang: API dizayni amaliyot va real misollar bilan o'rganiladi. Avval o'zingiz loyihalashga urinib, keyin yechimni oching.