Notice: file_put_contents(): Write of 23860 bytes failed with errno=28 No space left on device in /var/www/tgoop/post.php on line 50
Web Devs@fullStackDevs P.558
FULLSTACKDEVS Telegram 558
#GraphQL
#ApiDesign


✳️ GraphQL

🔹 در این پست قراره با هم دیگه یک نگاهی به graphQl بندازیم و بدونیم که graphQl چی هست و چه کاربردی داره ؟

با یه جست و جوی ساده به این تعریف از graphQl میرسیم
🧩 GraphQL is a query language for APIs

▪️'گراف کیو ال یک زبان پرس و جو برای API هاست.

🔻 باید بدانید که GraphQL و REST هر دو API Design هستند .
یعنی رابطی کارآمد که به استفاده کنندگان API این امکان رو میده، علاوه بر استفاده از API امکان تعامل بهتری رو با اون داشته باشند.

مطمئنا با این تعاریف باز هم متوجه شدن اینکه graphQl چی هست، سخت و گیج کنندست. بیاین ساده تر به موضوع نگاه کنیم

🔸مهمترین تفاوت بین REST و GraphQl در جمع آوری داده هاست 🤔.

🔰 در یک اپلییکیشن واقعی همیشه با dataSet های بزرگ سر و کار داریم.
به عنوان مثل ' کاربری که مجموعه ای از پست ها رو داره ، پستی که مجموعه ای از کامنت ها و لایک ها رو داره '. برای دریافت این اطلاعات به کمک یک REST API چاره نیست، جز اینکه چندین بار به سرور درخواست بفرستیم و هر بار اطلاعاتی رو دریافت کنیم.
به عنوان مثال در یک درخواست اطلاعات کاربر رو دریافت کنیم و در درخواست بعدی اطلاعات مربوط به پست های کاربر و در درخواست بعدی اطلاعات مربوط به لایک های پست و ...

🔹به طور کل مزیت یک REST API در ساده نگه داشتن کارهاست. چون همیشه با یک API سرو کار داریم که فقط یک کار انجام میده. همین امر باعث میشه تا نگه داری و فهمیدنش رو ساده تر کنه.
علاوه بر اینها مشکلی که در دریافت داده ها از یک REST API وجود داره اینکه، نمیتوانیم بسته به نیازی که داریم داده های دریافتی رو مشخص کنیم و فقط اون دیتایی که لازم داریم رو از Endpoint دریافت کنیم. همیشه با یک Set کامل از داده سر و کار داریم. به عنوان مثال در یک صفحه فقط میخواهیم که نام کاربر را نمایش بدیم، وقتی که یک درخواست مبتنی بر دریافت اطلاعات کاربر به REST API میفرستیم،
در ریسپانس هم آدرس کاربر ، شماره تماس و ... سایر اطلاعات دیگر هم دریافت میشه در حالی که فقط به نام کابر برای نمایش نیاز داشتیم.
🔻این مشکل اصطلاحا over fetching گفته میشه.

❇️ بلاخره نوبت به graphQL رسید. grapthQL علاوه بر تمام تعاریفی که پیش از این گفتیم، یک سینتکس (syntax) برای چگونگی درخواست اطلاعات میباشد. و از آن برای دریافت اطلاعات از سرور به کلاینت استفاده میشه.

🔹 سه ویژگی اصلی graphQl :
🔻به کلاینت این اجازه رو میده تا فقط داده ای که نیاز داره رو مشخص کنه و فقط همون رو برای کلاینت باز میگردونه.
🔻جمع آوری داده هارو از dataSet ها و resource های مختلف بسیار آسون میکنه.
🔻و از type system برای توصیف داده ها استفاده میکنه.

🔸 در graphQl کلایت داده ای که نیاز داره رو درخواست میده و فقط و دقیقا همون رو دریافت میکنه.
به عنوان مثال کلایت یک graphQl query به سرور میفرسته و در query خودش در خواست نام کاربر رو میکنه ، در سمت سرور graphQl execution engine این کوئری رو دریافت میکنه و با پردازش اون یک json که فقط شامل دیتایی هست که کلاینت خواسته باز میگردونه.

🔹از مزایای دیگر graphQl، دریافت اطلاعات از چند resource فقط در یک درخواست، هست.
به عنوان مثال در یک graphQL query که کلاینت به سمت سرور فرستاده ، میتونه علاوه بر مشخصات کاربر، اطلاعات مرتبط با post ها و like های همون کاربر رو هم در همون در خواست دریافت کنه،
( به این خاطر که تمرکز graphQl بر رابطه بین آبجکت هاست).
کاری که برای انجام اون در REST API ها باید چندین درخواست به سرور میفرستادین.

🧩
تاریخچه graphQl به سال 2012 و فیسبوک برمیگرده، زمانی که فیسبوک برای Feed کردن اخبار ها در اپلیکیشن موبایلش به مشکل خورده بود.
پیاده سازی بخش News Feed در اپلیکیشن موبایل کار ساده ای نبود، اخبار ها شامل پستهایی بودند و هر پست کامنت ها و لایک هایی داشت و رابطه بینشون پیچیده ، سلسله مراتبی و به هم پیوتسه و بازگشتی بود.
و علاوه بر اینها َAPI ها طوری طراحی نشده بودند تا به توسعه دهنده ها این اجازه رو بدن تا چنین داده های بهم پیوسته رو نشون بدن و فقط داده هایی که لازم دارن را دریافت کنن.
در نتیجه این نقطه شروعی برای شکل گیری grapgQl بود.
🧩

برای استفاده از graphQl باید از لایبری های Client side و پکیج های Server Side استفاده کنین. زبانی های زیادی هستند که از GraphQl پشتیبانی میکنند لیستی از آونها رو در اینجا میتونید ببینید.

🔹در قسمت های بعدی به مقایسه graphQL و REST میپردازیم و از مزایا و معایب میگیم و اینکه کی باید از کدومشون استفاده کرد.

@FullStackDevs



tgoop.com/fullStackDevs/558
Create:
Last Update:

#GraphQL
#ApiDesign


✳️ GraphQL

🔹 در این پست قراره با هم دیگه یک نگاهی به graphQl بندازیم و بدونیم که graphQl چی هست و چه کاربردی داره ؟

با یه جست و جوی ساده به این تعریف از graphQl میرسیم
🧩 GraphQL is a query language for APIs

▪️'گراف کیو ال یک زبان پرس و جو برای API هاست.

🔻 باید بدانید که GraphQL و REST هر دو API Design هستند .
یعنی رابطی کارآمد که به استفاده کنندگان API این امکان رو میده، علاوه بر استفاده از API امکان تعامل بهتری رو با اون داشته باشند.

مطمئنا با این تعاریف باز هم متوجه شدن اینکه graphQl چی هست، سخت و گیج کنندست. بیاین ساده تر به موضوع نگاه کنیم

🔸مهمترین تفاوت بین REST و GraphQl در جمع آوری داده هاست 🤔.

🔰 در یک اپلییکیشن واقعی همیشه با dataSet های بزرگ سر و کار داریم.
به عنوان مثل ' کاربری که مجموعه ای از پست ها رو داره ، پستی که مجموعه ای از کامنت ها و لایک ها رو داره '. برای دریافت این اطلاعات به کمک یک REST API چاره نیست، جز اینکه چندین بار به سرور درخواست بفرستیم و هر بار اطلاعاتی رو دریافت کنیم.
به عنوان مثال در یک درخواست اطلاعات کاربر رو دریافت کنیم و در درخواست بعدی اطلاعات مربوط به پست های کاربر و در درخواست بعدی اطلاعات مربوط به لایک های پست و ...

🔹به طور کل مزیت یک REST API در ساده نگه داشتن کارهاست. چون همیشه با یک API سرو کار داریم که فقط یک کار انجام میده. همین امر باعث میشه تا نگه داری و فهمیدنش رو ساده تر کنه.
علاوه بر اینها مشکلی که در دریافت داده ها از یک REST API وجود داره اینکه، نمیتوانیم بسته به نیازی که داریم داده های دریافتی رو مشخص کنیم و فقط اون دیتایی که لازم داریم رو از Endpoint دریافت کنیم. همیشه با یک Set کامل از داده سر و کار داریم. به عنوان مثال در یک صفحه فقط میخواهیم که نام کاربر را نمایش بدیم، وقتی که یک درخواست مبتنی بر دریافت اطلاعات کاربر به REST API میفرستیم،
در ریسپانس هم آدرس کاربر ، شماره تماس و ... سایر اطلاعات دیگر هم دریافت میشه در حالی که فقط به نام کابر برای نمایش نیاز داشتیم.
🔻این مشکل اصطلاحا over fetching گفته میشه.

❇️ بلاخره نوبت به graphQL رسید. grapthQL علاوه بر تمام تعاریفی که پیش از این گفتیم، یک سینتکس (syntax) برای چگونگی درخواست اطلاعات میباشد. و از آن برای دریافت اطلاعات از سرور به کلاینت استفاده میشه.

🔹 سه ویژگی اصلی graphQl :
🔻به کلاینت این اجازه رو میده تا فقط داده ای که نیاز داره رو مشخص کنه و فقط همون رو برای کلاینت باز میگردونه.
🔻جمع آوری داده هارو از dataSet ها و resource های مختلف بسیار آسون میکنه.
🔻و از type system برای توصیف داده ها استفاده میکنه.

🔸 در graphQl کلایت داده ای که نیاز داره رو درخواست میده و فقط و دقیقا همون رو دریافت میکنه.
به عنوان مثال کلایت یک graphQl query به سرور میفرسته و در query خودش در خواست نام کاربر رو میکنه ، در سمت سرور graphQl execution engine این کوئری رو دریافت میکنه و با پردازش اون یک json که فقط شامل دیتایی هست که کلاینت خواسته باز میگردونه.

🔹از مزایای دیگر graphQl، دریافت اطلاعات از چند resource فقط در یک درخواست، هست.
به عنوان مثال در یک graphQL query که کلاینت به سمت سرور فرستاده ، میتونه علاوه بر مشخصات کاربر، اطلاعات مرتبط با post ها و like های همون کاربر رو هم در همون در خواست دریافت کنه،
( به این خاطر که تمرکز graphQl بر رابطه بین آبجکت هاست).
کاری که برای انجام اون در REST API ها باید چندین درخواست به سرور میفرستادین.

🧩
تاریخچه graphQl به سال 2012 و فیسبوک برمیگرده، زمانی که فیسبوک برای Feed کردن اخبار ها در اپلیکیشن موبایلش به مشکل خورده بود.
پیاده سازی بخش News Feed در اپلیکیشن موبایل کار ساده ای نبود، اخبار ها شامل پستهایی بودند و هر پست کامنت ها و لایک هایی داشت و رابطه بینشون پیچیده ، سلسله مراتبی و به هم پیوتسه و بازگشتی بود.
و علاوه بر اینها َAPI ها طوری طراحی نشده بودند تا به توسعه دهنده ها این اجازه رو بدن تا چنین داده های بهم پیوسته رو نشون بدن و فقط داده هایی که لازم دارن را دریافت کنن.
در نتیجه این نقطه شروعی برای شکل گیری grapgQl بود.
🧩

برای استفاده از graphQl باید از لایبری های Client side و پکیج های Server Side استفاده کنین. زبانی های زیادی هستند که از GraphQl پشتیبانی میکنند لیستی از آونها رو در اینجا میتونید ببینید.

🔹در قسمت های بعدی به مقایسه graphQL و REST میپردازیم و از مزایا و معایب میگیم و اینکه کی باید از کدومشون استفاده کرد.

@FullStackDevs

BY Web Devs


Share with your friend now:
tgoop.com/fullStackDevs/558

View MORE
Open in Telegram


Telegram News

Date: |

The optimal dimension of the avatar on Telegram is 512px by 512px, and it’s recommended to use PNG format to deliver an unpixelated avatar. The SUCK Channel on Telegram, with a message saying some content has been removed by the police. Photo: Telegram screenshot. 3How to create a Telegram channel? Private channels are only accessible to subscribers and don’t appear in public searches. To join a private channel, you need to receive a link from the owner (administrator). A private channel is an excellent solution for companies and teams. You can also use this type of channel to write down personal notes, reflections, etc. By the way, you can make your private channel public at any moment. You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether.
from us


Telegram Web Devs
FROM American