Programming TypeScript


Download 1.81 Mb.
bet168/206
Sana01.11.2023
Hajmi1.81 Mb.
#1737990
1   ...   164   165   166   167   168   169   170   171   ...   206
Bog'liq
Boris Cherny Programming TypeScript Making Your JavaScript Applications (1)

Xavfsiz API-lar


Nik Nance tomonidan kiritilgan
Qaysi frontend va backend ramkalaridan foydalanishga qaror qilganingizdan qat'i nazar, siz mashinalar o'rtasida xavfsiz muloqot qilish usulini xohlaysiz - mijozdan serverga, serverdan mijozga, serverdan serverga va mijozdan mijozga.
Bu sohada bir nechta raqobatdosh vositalar va standartlar mavjud. Ammo ular nima ekanligini va ular qanday ishlashini o'rganishdan oldin, keling, o'z yechimimizni qanday yaratishimiz va uning qanday afzalliklari va kamchiliklari bo'lishi mumkinligi haqida o'ylab ko'raylik (axir biz muhandismiz).
Biz hal qilmoqchi bo'lgan muammo: bizning mijozlarimiz va serverlarimiz 100% xavfsiz bo'lishi mumkin - xavfsizlik asoslari - bir nuqtada ular HTTP, TCP yoki boshqa rozetkalar kabi tiplanmagan tarmoq protokollari orqali bir-birlari bilan gaplashishi kerak bo'ladi. asoslangan protokollar. Qanday qilib bu aloqa turini xavfsiz qilishimiz mumkin?
194-betdagi “Typexavfsiz protokollar” da ishlab chiqqanimiz kabi xavfsiz tipdagi protokol bo'lishi mumkin . Bu shunday ko'rinishi mumkin:
turi So'rov =
| { ob'ekt : 'foydalanuvchi' , ma'lumotlar : Foydalanuvchi }
| { ob'ekt : 'joylashuv' , ma'lumotlar : Joylashuv }
// client.ts
asinx funktsiyasi olish < R uzaytiradi So'rov > ( ob'ekt : R [ 'ob'ekt' ]) : Va'da < R [ 'ma'lumotlar' ] > {
ruxsat bering res = kuting fetch ( /api/ $ { ob'ekt }) ruxsat bering json = kuting res . json ()
agar ( ! json ) {
tashlash ReferenceError ( 'Bo'sh javob' )
} qaytish json }
// app.ts
asinx funktsiyasi startApp() {
ruxsat bering foydalanuvchi = kuting get ( "foydalanuvchi" ) // Foydalanuvchi }
Siz REST API-ga qayta yozish uchun mos keladigan post yaratishingiz va funksiyalarni qo'yishingiz va serveringiz qo'llab-quvvatlaydigan har bir ob'ekt uchun tur qo'shishingiz mumkin. Backendda siz so'ragan ob'ektni mijozga qaytarish uchun ma'lumotlar bazasidan o'qib, har bir turdagi ob'ekt uchun mos keladigan ishlov beruvchilar to'plamini amalga oshirasiz.
so'rov turini baham ko'ra olmasangiz (vaqt o'tishi bilan ikkalasi ham sinxronlashtirilmaydi) yoki foydalanmasangiz nima bo'ladi REST (balki siz GraphQL dan foydalanasiz)? Yoki qo'llab-quvvatlaydigan boshqa mijozlaringiz bo'lsa-chi, masalan, iOS-da Swift mijozlari yoki Android-da Java mijozlari?
Bu yerda terilgan, kod bilan yaratilgan APIlar keladi. Ular juda ko‘p ta’mga ega bo‘lib, har birida bir nechta tillarda (jumladan, TypeScript) mavjud kutubxonalar mavjud, masalan:

Ushbu vositalar server va mijozlar uchun umumiy haqiqat manbasiga tayanadi - Swagger uchun ma'lumotlar modellari, Apollon uchun GraphQL sxemalari, gRPC uchun Protokol buferlari - ular keyin siz foydalanayotgan til uchun (bizning holimizda) tilga xos bog'lanishlarga kompilyatsiya qilinadi. , bu TypeScript).
Ushbu kod ishlab chiqarish sizning mijozingiz va serveringiz (yoki bir nechta mijozlar) bir-biri bilan sinxronlashdan chiqib ketishiga to'sqinlik qiladi; Har bir platforma umumiy sxemani baham ko'rganligi sababli, siz iOS ilovangizni maydonni qo'llab-quvvatlash uchun yangilagan holatga duch kelmaysiz, lekin unga server qo'llab-quvvatlashini qo'shish uchun tortish so'rovida Birlashtirish tugmasini bosishni unutgansiz.
API turlari
Har bir ramkaning tafsilotlariga sho'ng'ish bu kitob uchun mo'ljallanmagan. Loyihangiz uchun birini tanlang va ko'proq ma'lumot olish uchun uning hujjatlariga o'ting.

Download 1.81 Mb.

Do'stlaringiz bilan baham:
1   ...   164   165   166   167   168   169   170   171   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling