APIکدی است که به دو برنامهی نرمافزاری اجازه ارتباط با همدیگر را میدهد و راه درستی را برای توسعهدهنده تعریف میکند تا بتواند برنامهای بنویسد که از سیستمعامل یا اپلیکیشنی دیگر، سرویسی را دریافت کند. تاکنون اکثر API ها با استفاده از rest نوشته میشدند. اما با توجه به مشکلاتی که این تکنولوژی دارد ، قصد دارم در این دوره ابزار graphQl که امروزه به عنوان یک تکنولوژی بسیار عالی […]
APIکدی است که به دو برنامهی نرمافزاری اجازه ارتباط با همدیگر را میدهد و راه درستی را برای توسعهدهنده تعریف میکند تا بتواند برنامهای بنویسد که از سیستمعامل یا اپلیکیشنی دیگر، سرویسی را دریافت کند. تاکنون اکثر API ها با استفاده از rest نوشته میشدند. اما با توجه به مشکلاتی که این تکنولوژی دارد ، قصد دارم در این دوره ابزار graphQl که امروزه به عنوان یک تکنولوژی بسیار عالی و مهم به کار میرود را به شما آموزش دهم. graphQl یکزبان Query محسوب میشود که با استفاده از آن میتوانیم؛ api های قابل توسعهتر و قدرتمندتری را نسبت به گذشته به وجود آوریم.
خصوصیات Rest و graphQl :
- در Rest ما بایستی به ازای هر درخواست یک endpoint تعریف کنیم که زمان زیادی از ما میگیرد ولی در graphQl لازم به تعریف endpoint های مختلف نیست، یعنی شما نیاز ندارید که برای هر درخواست یک روت (Route)متفاوت را تعریف کنید .
- در Rest شما بایستی برای دریافت یا ذخیره و یا هر کار دیگری که با سرور دارید به یک endpoint متفاوت درخواست خود را ارسال کنید ولی در graphQl دریافت اطلاعات با متنهای سادهای با عنوان query انجام میشود .
- تقریباً شما میتوانید از graphql در تمام زبانها و فریم ورک ها استفاده کنید. بنابراین این دوره محدود به زبان خاصی نیست و شما با یادگیری graphql میتوانید در زبان موردنظر خود از آن استفاده کنید
معرفی پروژه
ما در این دوره سعی داریم تا ابزار graphQl را بهصورت کامل به شما آموزش دهیم. جهت درک بهتر این ابزار تصمیم گرفتیم تا بهصورت واقعی از این ابزار جهت نوشتن API یک اپلیکیشن اندرویدی استفاده کنیم. بنابراین تمرکز اصلی ما در این دوره بر روی یادگیری و پیادهسازی API این اپلیکیشن خواهد بود. قسمت اندروید این پروژه بسیار ساده بوده و صرفاً جهت درک مطالب آورده شده است ولی این قسمت نیز همانند سایر قسمتهای دیگر بهصورت کامل آموزش داده خواهد شد. در این پروژه ما یک اپلیکیشن برای یک مدرسه پیادهسازی میکنیم. در این اپلیکیشن یک صفحه برای ثبتنام کاربران؛ یک صفحه برای ورود ؛ یک صفحه برای ثبت نمرات و یک صفحه نیز برای مشاهده نمرات قرار خواهیم داد. در این پروژه استاد میتواند نمرات را برای دانش آموزان ثبت کرده و دانش آموزان با ورود به اپلیکیشن قادر به مشاهده نمرات خواهند بود.
همچنین در بخش دیگر این اپلیکیشن استاد قادر خواهد بود یک پیام به دانشآموزی خاص ارسال کند.
دوره برای چه کسانی مناسب است؟
این دوره برای تمامی افرادی که قصد مهاجرت از تکنولوژیهای قدیمی ازجمله rest به سمت تکنولوژی جدید graphQl را دارند پیشنهاد میشود. درصورتیکه حتی هیچ تجربهای در نوشتن api ندارید ما در این دوره تمامی نکات لازم برای نوشتن api را آموزش خواهیم داد.
بازار کار دوره
نوشتن کدهای تمیز و منعطف در تمامی پروژهها بسیار مهم است. با توجه به اینکه تکنولوژی graphQl ازجمله تکنولوژیهای بروز میباشد که به شما کمک میکند کدهای تمیز و منعطفی بنویسید؛ بنابراین علاوه بر اینکه میتوانید این تکنولوژی را در پروژههای شخصی مورداستفاده قرار دهید؛ مطمئناً تمامی شرکتهای ایرانی به سمت این تکنولوژی خوب؛ حرکت خواهند کرد و یکی از تواناییهای موردنیاز برای استخدام در شرکتها این تکنولوژی خواهد بود.
معرفی پیشنیازها
- این دوره هیچ پیشنیازی نداشته و تمامی موارد لازم جهت انجام پروژه آموزش داده خواهد شد. البته دانش قبلی از زبان برنامهنویسی Nodejs و برنامهنویسی اندروید(جاوا) کمک زیادی در یادگیری این دوره خواهد داشت.
تکنولوژیهای مورداستفاده
- زبان برنامه نویسی NodeJs
- java
- اندروید استودیو
- و …
سرفصل های دوره آموزش آموزش graphQl :
-مقدمه
- مقدمه و توضیحات دوره
- آشنایی با ابزار graphQl و مقایسه با ابزار Restful
- نصب Nodejs و پکیجهای موردنیاز
-QraphQl
- آشنایی با graph Ql و نصب ابزار در Nodejs
- آشنایی و پیادهسازی schema و query ها
- Resolver چیست؟ و پیادهسازی آن در Nodejs
- ارسال پارامترهای موردنیاز به Resolver
-پروژه
- مقدمه و توضیحات اولیه پروژه
- ایجاد پروژه در اندروید استودیو و کانفیگ اولیه سرور برای پیادهسازی با graphQl
- پیادهسازی صفحه ثبتنام در اندروید ارسال اطلاعات به سرور
- معرفی سیستم احراز هویت در graphQl
- پیادهسازی قسمت احراز هویت و ورود به اپلیکیشن
- پیادهسازی صفحه ثبت نمرات توسط استاد
- پیادهسازی صفحه مشاهده نمرات توسط دانش آموزان
- پیادهسازی صفحه ارسال پیام خصوصی به دانشآموز
- پیادهسازی صفحه مشاهده پیام خصوصی به دانشآموز