جنگو برای APIها: ساخت APIها وب با پایتون و جنگو
قیمت : ۵۹۹,۰۰۰ ریال
در این کتاب، شما یاد خواهید گرفت که چگونه با استفاده از فریم ورک جنگو و فریمورک REST جنگو چندین وب API با پیچیدگی های متفاوت را ایجاد کنید. جنگو یک فریم ورک محبوب مبتنی بر پایتون است که بخش های پیچیده ی ایجاد یک وب سایت ازجمله احراز هویت کاربر، اتصال به پایگاه داده، منطق، امنیت و غیره را شامل می شود. همچنین هزاران بسته ی شخص ثالث وجود دارند که قابلیت هایی را به خود جنگو اضافه می کنند، مهم ترین آن ها فریم ورک REST جنگو است که به برنامه نویسان این امکان را می دهد که هر پروژه ی جنگو موجود را به یک وب API قدرتمند تبدیل کنند.
شرکت های فناوری بزرگی مانند اینستاگرام، موزیلا و پینترست از جنگو و فریم ورک REST جنگو استفاده می کنند. به خاطر این که رویکرد " batteries included" جنگو بخش های زیربنایی پنهان را پوشش می دهد و توسعه سریع و امن را امکان پذیر می کند، این فریم ها همچنین برای مبتدیان یا پروژه هایی کوچک مناسب هستند. با مطالعه این کتاب، شما قادر خواهید بود تا با استفاده از کم ترین حجم کد و در زمان بسیار کم تر، وب APIهایی آمادهبهکار را ایجاد کنید.
چرا از وب APIها استفاده می شود؟
API (Application Programming Interface) یک راه کوتاه برای توصیف نحوه ارتباط مستقیم دو رایانه با یک دیگر است. برای APIهای وب که در وب جهانی وجود دارند، الگوی معماری غالب REST (REpresentational State Transfer) شناختهشده است و در این کتاب به درستی پوشش داده خواهد شد.
در سال 2005، هنگامی که جنگو برای اولین بار منتشر شد، بیش تر وبسایت ها یک کد حجیم یک پارچه داشتند. پشتیبانی از مدل های پایگاه داده، دیدها و URLها با قالبهای پیش خوان (فرانت اند) ترکیب میشدند تا لایه ارائه هر صفحه وب را کنترل کنند.
اما این روزها برای وب سایت ها بسیار رایج تر شده است که رویکرد API-First را اتخاذ کنند تا پس-خوان (back-end) را از پیش خوان (front-end) جدا کنند. این موضوع به وب سایت امکان می دهد تا از فریم ورک پیش خوان JavaScript اختصاصی مانند React یا Vue استفاده کند که به ترتیب در سالهای 2013 و 2014 منتشر شدند.
وقتی فریم ورک های جدید جای فریم ورک های فعلی را در آینده به خود اختصاص میدهند، API پشتیبانی شده باقی میماند و نیازی به بازنویسی اساسی و از ابتدای آن ها نیست. یکی دیگر از مزایای عمده، این است که یک API میتواند چندین پیش خوان (فرانت-اند) را که با زبانها و فریم ورک های مختلف نوشتهشدهاند، پشتیبانی کند. برای مثال، جاوا اسکریپت برای پیش خوان(فرانت-اند)های وب استفاده میشود، درحالیکه اپلیکیشنهای اندروید به زبان جاوا و اپلیکیشنهای iOS به زبان Swift نوشته میشوند. با رویکرد سنتی مونولیتیک، یک وبسایت جنگو قادر به پشتیبانی از این (فرانت-اند)های مختلف نیست. اما با یک API داخلی، همه آنها میتوانند با پایگاه داده مشترک پشتیبانی کنند!
وبسایتهای در حال رشد همچنین می توانند از ایجاد یک API خارجی بهره مند شوند که به توسعه دهندگان شخص ثالث اجازه می دهد اپلیکیشنهای iOS یا Android خود را بسازند. زمانی که من در سال 2010 در Quizlet کار میکردم، منابع لازم برای توسعه اپلیکیشنهای iOS یا Android خود را نداشتیم، اما API خارجی در دسترس بود که بیش از 30 توسعهدهنده از آن برای ساخت اپلیکیشنهای کارتهای حافظه خود بهره بردند که توسط پایگاه داده Quizlet پشتیبانی میشد. چندین مورد از این اپلیکیشنها بیش از یکمیلیون بار دانلود شدند و توسعهدهندگان را غنی و بی نیاز کردند و بهطور هم زمان دسترسی به Quizlet را افزایش دادند.
عیب اصلی رویکرد API-first این است که نسبت به یک اپلیکیشن جنگو سنتی، نیاز به پیکربندی بیشتری دارد. بااینحال، همانطور که در این کتاب خواهیم دید، کتابخانه فوقالعاده فریمورک REST جنگو بسیاری از این پیچیدگیها را برای ما حذف میکند.
فریم ورک REST جنگو
هزاران اپلیکیشن شخص ثالث در دسترس هستند که عملکردها و قابلیت های بیش تری را به جنگو اضافه میکنند. شما میتوانید یک لیست کامل و قابل جستجو را در سایت جنگو Packagesمشاهده کنید، همچنین لیستی منتخب را در ریپوی "awesome-django " مشاهده کنید. بااینحال، در میان تمام اپلیکیشن های شخص ثالث، میتوان گفت فریمورک REST جنگو برای جنگو بهترین اپلیکیشن است. این فریم ورک کامل، دارای ویژگی های بسیار، قابل سفارشیسازی، قابل تست و با مستندات بسیار خوب و مناسب است. همچنین بهطور هدفمند بسیاری از مفاهیم سنتی جنگو را تقلید میکند که یادگیری آن را بسیار سریع تر میکند. اگر شما از قبل جنگو را بلد باشید، یادگیری فریمورک REST جنگو گام منطقی بعدی است.
پیش نیازها
اگر در توسعه وب با جنگو تازهکار هستید، توصیه میکنم ابتدا کتاب قبلی من Django for Beginners (جنگو برای مبتدیان) را بخوانید. چند فصل اول این کتاب بهصورت رایگان در اینترنت در دسترس است و شامل مباحثی مانند راهاندازی مناسب، اپلیکیشن Hello World، اپلیکیشن Pages و اپلیکیشن Message Board است. نسخه کامل این کتاب عمیقتر میشود و یک وبسایت وبلاگ را با فرمها و حسابهای کاربری و همچنین یک سایت روزنامه آماده محیط تولید را پوشش میدهد که دارای یک مدل کاربر سفارشی، جریان احراز هویت کامل کاربر، ایمیلها، مجوزها، استقرار، متغیرهای محیطی و موارد دیگر است.
این پیشینه در جنگو سنتی، مهم است به خاطر اینکه فریم ورک REST جنگو عمدا بسیاری از مفاهیم جنگو سنتی را تقلید میکند. همچنین، توصیه میشود که خوانندگان دانش پایهای و اولیه در زمینه پایتون را داشته باشند. بهطورکلی، فراگیری کامل پایتون چندین سال زمان میبرد، اما با یک دانش کم میتوانید مستقیما شروع به ساخت مدلها کنید.
چرا این کتاب؟
من این کتاب را نوشتهام، زیرا بهنوعی، برای توسعهدهندگانی که بهتازگی با فریمورک REST جنگو آشنا شدهاند، منابع مناسبی وجود ندارد. به نظر میرسد فرض بر این است که همه از قبل همهچیز را در مورد رابط برنامهنویسی اپلیکیشن (API)ها، HTTP، REST و موارد مشابه میدانند. مسیر یادگیری من در زمینه ساخت API وب، آزاردهنده و خستهکننده بود ... و حتی من خودم قبلا به خوبی جنگو را بلد بودم که بتوانم کتابی در مورد آن بنویسم!
این کتاب، راهنمایی است که من آرزو داشتم هنگام شروع به کار با فریم ورک REST جنگو، در دسترس داشته باشم.
فصل اول به نصب پایتون، جنگو، Git و کار با خط فرمان میپردازد. فصل دوم، یک مقدمهای برای رابط برنامهنویسی اپلیکیشن (API) و پروتکل HTTP ارائه میدهد. در فصلهای 3 و 4، ما با ساختن یک وبسایت کتابخانه با جنگو سنتی، آن را به یک API تبدیل کرده، تست میکنیم و سپس آن را بهصورت آنلاین به کار میبریم. در فصل 5، یک API Todo با نقاط پایانی لیست و جزئیات را ساخته، تست کرده و آن را به کار میبریم. این فصل همچنین شامل CORS(اشتراک منابع بین سایت های مختلف یا Cross Origin Resource Sharing) است.
فصل 6، شروع ساخت یک API وبلاگی آمادهبهکار (محصول) با یک مدل کاربری سفارشی و قابلیت CRUD (ایجاد-خواندن-بهروزرسانی -حذف) کامل است. فصل 7، بهدرستی به محدود کردن دسترسی و ایجاد یک کلاس دسترسی سفارشی میپردازد. در فصل هشتم، تمرکز به احراز هویت کاربر و چهار روش داخلی احراز هویت میپردازد. سپس به اضافه کردن نقاط پایانی ثبتنام کاربر، ورود، خروج، بازنشانی کلمه عبور و تایید بازنشانی کلمه عبور میپردازیم. در فصل نهم به viewset ها و مسیریاب ها پرداخته میشود، که اجزای داخلی هستند که میتوانند حجم کد نویسی موردنیاز برای نقاط پایانی API استاندارد را بهشدت کاهش دهند. فصل دهم شما (schema) و مستندات را پوشش میدهد و فصل یازدهم بهصورت گامبهگام در مورد استقرار محصول میپردازد.
کدهای منبع کامل برای همه فصلها این کتاب بهصورت آنلاین در Github موجود است.
نتیجه گیری
درواقع جنگو و فریم ورک REST جنگو یک راه قدرتمند و دسترس برای ساخت APIهای وب هستند. در پایان این کتاب شما قادر خواهید بود API را به هر پروژه جنگویی موجود اضافه کنید یا با استفاده از بهترین شیوههای مدرن، یک API وب اختصاصی از صفر ایجاد کنید. بیایید شروع کنیم!
مرتبط با این کتاب
نظرات کاربران