GN
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
• خب GraphQL
• مقایسه ساده با REST
- در REST API
~> مثال
• فرض کنیم میخواهیم از یک API اطلاعات یک کاربر و لیست پستهاش دریافت کنیم.
• در REST
- برای دریافت اطلاعات کاربر و پستهاش باید دو درخواست جداگانه ارسال کنیم:
GET /users/1
GET /users/1/posts
• در GraphQL
- شما میتوانید یک درخواست واحد ارسال کنید:
query {
user(id: 1) {
id
name
email
posts {
id
noscript
content
}
}
}- پاسخی که دریافت میکنیم این شکلی هست:
{
"data": {
"user": {
"id": "1",
"name": "Mohsen Bakhshi",
"email": "mhsn.bakhshi696@gmail.com",
"posts": [
{
"id": "101",
"noscript": "what is GraphQl",
"content": "GraphQL is amazing!"
},
{
"id": "102",
"noscript": "lets start GraphQL",
"content": "start with types in GraphQl"
}
]
}
}
}• در GraphQL 👩💻، دقیقا مشخص میکنیم چه دادههایی را میخواهیم از سرور. مثلا اگر فقط نام و ایمیل کاربر را نیاز داریم:
query {
user(id: 1) {
name
email
}
}• پاسخ دریافتی:
{
"data": {
"user": {
"name": "mhsn Bakhshi",
"email": "mhsn.bakhshi696@gmail.com"
}
}
}• میتونیم دادههای مرتبط را در یک ساختار سلسلهمراتبی درخواست کنیم. یعنی چی؟ مثلا اطلاعات کامنتهای یک پست:
query {
post(id: 10) {
noscript
comments {
id
text
author {
name
}
}
}
}• در GraphQL
در GraphQL
به جای ارسال چندین درخواست به سرور (over-fetching و under-fetching در REST)، تمام دادههای موردنیاز را در یک درخواست بگیرید.
با GraphQL
برای پروژههایی با دادههای متصل و پیچیده، GraphQL
• وقتی پروژه شما شامل چندین کلاینت (وب، موبایل، دسکتاپ) است.
• زمانی که نیاز به ترکیب داده از چندین منبع مختلف دارید.
• در پروژههایی که نیازمند آپدیتهای سریع و مداوم در API هستید.
• برای کاهش مشکلات مرتبط با نسخهبندی API (Versioning).
• حالا Apollo Server چیه؟ یکی از محبوبترین پیادهسازیهای GraphQL
- پشتیبانی از ابزارهای پیشرفته برای توسعه و دیباگ.
- ادغام آسان با Node.js
- قابلیتهای پیشرفته مثل کشینگ، اشتراکگذاری (Subnoscriptions) و Authentication.
- ساده و قابلاعتماد برای شروع کار با GraphQL
- پشتیبانی عالی از ابزارهای فرانتاند مانند Apollo Client.
- جامعه بزرگ و مستندات جامع.
🎞 برای یادگیری GraphQl🧧 همراه با Apollo Server این پلی لیست یوتیوب رو مشاهده کنین.🔴 https://youtube.com/playlist?list=PLT5Jhb7lgSBOnwyukLUZb6X-WnliySCUL&si=GNNi5K83eTAfWNFZ
~> مستندات رسمی GraphQl و Apollo Server🧾 https://graphql.org/🧾 https://www.apollographql.com/dos/apollo-server
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
• یک سبک معماری محبوب برای ساخت APIها
• در
• همانطور که میدانیم REST
• در
• به دلیل معماری Stateless (بدون حالت)،
• ابزارهای بسیاری مانند Postman
- وقتی نیاز به ایجاد API ساده و خوانا برای وب یا موبایل دارید.
- زمانی که معماری سیستم شما به صورت Stateless طراحی شده است.
- برای پروژههایی که نیاز به تعامل با منابع وب (مانند JSON یا XML) دارند.
- در پروژههایی که جامعه توسعهدهندگان نیاز به یک روش استاندارد و گسترده دارند.
• با استفاده از استانداردهای HTTP
• تقریبا تمام زبانهای برنامهنویسی و فریمورکها از REST پشتیبانی میکنند.
درخواستهای GET بهراحتی میتوانند کش شوند تا کارایی سیستم افزایش یابد.
در REST APIها بهطور طبیعی با مرورگرها و ابزارهای مرتبط سازگار هستند.
- فرض کنید میخواهیم اطلاعات یک کاربر با ایدی 1 را دریافت کنیم:
- نوع درخواست:
GET http://localhost:3000/users/1
- پاسخ:
{
"id": 1,
"name": "Mohsen Bakhshi",
"email": "mhsn.bakhshi696@gmail.com"
}🔴 https://youtube.com/playlist?list=PL55RiY5tL51q4D-B63KBnygU6opNPFk_q&si=7_eK3YMZCIuWFlI1
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
• هنگام انتخاب بین
• ساختار درخواست
- در
- در
• نسخهبندی (Versioning)
- در
- در
• کارایی در درخواستها
- در
- در
• سازگاری با کشینگ
- در
- در
• یادگیری و پیادهسازی
- در
- در
• درخواست دقیق دادهها (Exact Fetching).
• ترکیب چندین منبع در یک درخواست.
مستندات خودکار API.
• مناسب برای پروژههای بزرگ و پیچیده.
• ساده و گسترده در بین توسعهدهندگان.
کشینگ آسان با HTTP.
• مناسب برای پروژههای کوچک یا متوسط.
• از
- زمانی که نیاز به انعطافپذیری بالا در درخواست دادهها دارید.
- وقتی چندین کلاینت (وب، موبایل، دسکتاپ) به API شما متصل هستند.
- برای پروژههایی با دادههای پیچیده و متصل.
• از
- زمانی که پروژه شما ساده یا متوسط است.
اگر نیاز به کشینگ قوی با ابزارهایی مانند CDN دارید.
- وقتی تیم توسعه با REST آشنایی بیشتری دارد.
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
• ابزار Httpie یه ابزار بسیار خوب برای توسعه دهندگان وب هستش که میتونن آدرس های API از نوع
• ابزار Httpie از هوش مصنوعی پشتیبانی میکنه و واسه کار کردن باهاش نیازی به ساخت اکانت و احراز هویت ندارین.
🧾 https://httpie.io/
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
جوری که تو آموزشگاها تدریس میکنن :
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🧾 http://gprm.itnoscript.in
🧾 https://forthebadge.com
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
⛽️ https://www.npmjs.com/package/bad-words⛽️ https://socket.dev/npm/package/persian-bad-words
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
که میخوای رو فیلتر کنی بعد مقاله های مرتبط با اون رو برات نشون بده؟
🧾 https://www.30secondsofcode.org/js
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
و .... این راه ادامه دارد
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
Nodejs
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🐱 https://github.com/sohilpro/city_state_iran🐱 https://github.com/premier213/json-list-iran-cities
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
package.json.pdf
121 KB
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
سلامتی مخصوصن ما برنامه نویسا واقعا باید جدی بگیریم آسیب هایی که به چشم، کمر اعصاب(موقع ارور
🧾 https://mojeradical.com/%D8%AD%D9%81%D8%B8-%D8%B3%D9%84%D8%A7%D9%85%D8%AA-%DA%86%D8%B4%D9%85/
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM