⁉️ دیتابیس چیه و چه کاربرد هایی داره؟
تو مباحث نرمافزار و علوم رایانه دیتابیس یا پایگاه داده به یک مجموعه منظم از اطلاعات گفته میشه که در جدول هایی ذخیره و طبقه بندی میشن (تصویر 2#). این جدول ها، ردیف ها و ستون هایی دارن که داخلشون مقادیر مربوط به اون ستون و ردیف قرار میگیره.
⭐️ دیتابیس از این جهت برامون مهمه که اطلاعات مارو پایدار میکنه¹ و برامون نگهداریش میکنه تا هروقت که نیاز داشتیم، اطلاعات مورد نیاز رو ازش درخواست کنیم. یا حتی توش ثبت کنیم یا برای مقاصد تحلیلی و Analysis ازش استفاده کنیم.
✅ به فرایندِ درخواست اطلاعات از دیتابیس میگیم «کوئری» (Query). کوئری ها دستوراتی هستن که برامون اطلاعات رو جمعآوری میکنن و برمیگردونن.
🧐 برای مثال فرض کنید من تو جدولم میخوام افرادی رو پیدا کنم که بزرگتر از ۱۸ سال هستن تا احراز هویتشون رو کامل کنم. بدین شکل به دیتابیسم کوئری میزنم:
- نتیجه این کوئری عکس #3 (همونطور که میبینید دیگه Nima برنگشته چون سنش زیر ۱۸ بود)
🔥 ترجمهی این کوئری میشه:
انتخاب کن همه رو (درواقع علامت * معنی همه میده) از جدول users به شرط اینکه پراپرتی ( یا همون ویژگیِ ) سن کاربر بزرگتر مساوی ۱۸ باشه.
*این یکی از ساده ترین کوئری های ممکنه و صرفا جهت آشنایی شما با مفهوم کوئری آورده شده.
✔️ این کوئری با زبانی به اسم «SQL» زده میشه. ما چند نوع دیتابیس داریم. دیتابیس های SQL و دیتابیس های NoSQL.
دیتابیس های SQL برای ذخیره سازی داده از همین ستون ها و جدول ها استفاده میکنن. برای کوئری زدن هم از همون زبان SQL استفاده میکنن.
😎 اما دیتابیس های NoSQL میتونن دیتاتایپ ویژه خودشون رو داشته باشن. مثلا دیتابیس MongoDB، داده هارو تو اسنادی به اسم داکیومنت (Document) ذخیره میکنه.
زبان کوئریش هم SQL نیست و زبان کوئری خودش رو داره. خودشون که بهش نام «MQL» رو دادن؛ مخففِ «MongoDB Query Language»
1️⃣ از دیتابیس های SQL ای معروف میشه به: MySQl, SQLite, PostgreSQL اشاره کرد.
2️⃣ از دیتابیس های NoSQL ای معروف میشه به: MongoDB, ScyllaDB, Redis, Couchbase و.. اشاره کرد.
¹ اصطلاح علمی و کامپیوتریِ این پایدار کردن دیتا «Persist» هست.
کنجکاو بمونید.
#database #computer_science #sql #query #mongodb
🔗 Reference
🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
تو مباحث نرمافزار و علوم رایانه دیتابیس یا پایگاه داده به یک مجموعه منظم از اطلاعات گفته میشه که در جدول هایی ذخیره و طبقه بندی میشن (تصویر 2#). این جدول ها، ردیف ها و ستون هایی دارن که داخلشون مقادیر مربوط به اون ستون و ردیف قرار میگیره.
SELECT
*
FROM
public.users
WHERE
users.age >= 18;
- نتیجه این کوئری عکس #3 (همونطور که میبینید دیگه Nima برنگشته چون سنش زیر ۱۸ بود)
انتخاب کن همه رو (درواقع علامت * معنی همه میده) از جدول users به شرط اینکه پراپرتی ( یا همون ویژگیِ ) سن کاربر بزرگتر مساوی ۱۸ باشه.
*این یکی از ساده ترین کوئری های ممکنه و صرفا جهت آشنایی شما با مفهوم کوئری آورده شده.
دیتابیس های SQL برای ذخیره سازی داده از همین ستون ها و جدول ها استفاده میکنن. برای کوئری زدن هم از همون زبان SQL استفاده میکنن.
زبان کوئریش هم SQL نیست و زبان کوئری خودش رو داره. خودشون که بهش نام «MQL» رو دادن؛ مخففِ «MongoDB Query Language»
¹ اصطلاح علمی و کامپیوتریِ این پایدار کردن دیتا «Persist» هست.
کنجکاو بمونید.
#database #computer_science #sql #query #mongodb
🔗 Reference
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27❤🔥5⚡3👍3🆒1
این لیستو از دست ندید، همشون مستقیما دوستای خودمن و محتواشون قطعا خفن و کارآمده ❤️🔥:
https://news.1rj.ru/str/addlist/ofQUtBMkdCsyMTJk
https://news.1rj.ru/str/addlist/ofQUtBMkdCsyMTJk
🔥11👍3🤩3⚡2
برای همین این پست رو فعلا داشته باشید تا یه چیزایی رو بدونید ازش؛ ولی در ادامه خیلی بیشتر باید گفته بشه.
موافق چه کاری هستید؟
دوست دارید یه ویدیو بگیرم همشو جمع کنم براتون و رو یوتیوب بذارم؟ (بعد از یک هفته روی چنل تلگرام هم آپلود میشه).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥3
⁉️🌐 دنیای وب واقعا چطور کار میکنه؟
ما هرروز کلی عکس، فیلم، صدا، فایل و غیره برای هم ارسال میکنیم. هرروز به کلی وبسایت سر میزنیم و چیزای مختلفی میگیریم و میبینیم، اما همهی اینها چطور ممکن شده؟
✅ HTTP یا «HyperText transfer protocol» یک پروتکل در لایهی application، یعنی لایهی هفتم مدل OSI و لایهی چهارم مدل TCP/IP هست. بعدا این جمله رو بیشتر باز میکنیم قطعا، اما در حال حاضر صرفا اینکه بدونید یک پروتکل هست برای ادامه کفایت میکنه.
⁉️ سوالی اولی که پیش میاد اینه که اصلا چیکار میکنه؟ HTTP مثل یک پل ارتباطی بین دوتا دستگاهه که تو بستر وب کار میکنن، و بهشون این قابیلت رو میده که بهم دیگه عکس، صدا، فایل، ویدیو و ... ارسال کنن. اما چطور این کارو میکنه؟
⚜️ دوتا مفهوم هست که باید شدیدا بهشون توجه کنید: «Request» و «Response»
🌕 وقتی شما وارد مرورگر میشید و میزنید http://digikala.com ، درواقع مرورگر یک Request به سمت سرور های دیجیکالا ارسال میکنه، و بعد سرورهای دیجیکالا بعد از تحلیل درخواست شما و جمعآوری اطلاعات لازم برای پاسخ دادن به شما، یک Response متناسب براتون ارسال میکنن. این میشه کل فرایند کار و به عنوان «Request Cycle» میشناسیمش.
⁉️ حالا سوال: چطور مرورگر به سرور های دیجیکالا ( یا هر سرور دیگهای ) بفهمونه که چیکارش داره. شاید اصلا من داشتم مشخصات یک محصول رو ارسال میکردم تا توی سبد خریدم ذخیرش کنم، چجوری باید اینو بهش بگم؟ خب باید از Verb های HTTP استفاده کنم.
💎 چیزی که تو این مرحله نیاز میشه بدونید، «HTTP Verbs» هست. اول از همه باهم ببینیم که چی هستن:
GET, POST, PUT, PATCH, DELETE
- اما برای چی و چجوری ازشون استفاده میکنیم؟
GET: برای دریافت دیتا و اطلاعات یک آدرس یا URL. مثلا برای مشاهده صفحهی اصلیِ http://digikala.com یک درخواست از نوع GET ارسال میشه. اگر اطلاعات بیشتری راجب URL میخواید یا نمیدونید چیه هشتگ #URL کامل توضیحاتش هست.
POST: این متُد (اسم دیگهی وِرب) برای ارسال داده سمت سرور هست. فرض کنید تو مثال دیتابیس تو پستِ بالا من میخواستم اطلاعات یک یوزر جدید رو ثبت کنم. باید با استفاده از یک متد POST این کار رو میکردم. چرا؟ چون متد پست قابلیت حمل بار داره. اگر متد GET موتورسیکلت باشه متد POST کامیونه. و میتونه با خودش یه مقدار بار (که بهش میگیم Request Body) حمل کنه و مثلا همون name, age, lastName رو با مقادیرش بذاریم توش و بفرستیم سمت سرور.
⚠️ نکته: نه اینکه GET قابلیت داشتن Body نداشته باشه، اما ازش استفاده نمیشه چون خیلی از سرور ها از Bodyای که تو ریکوئست GET باشه صرفنظر میکنن و از نظر معنایی هم این کار معنی نمیده که شما با متد دریافت اطلاعات، بخوای اطلاعات بفرستی.
PATCH و PUT: جفتشون برای آپدیت کردن یک منبع در سرور به کار میرن. مثلا فرض کنید کاربر اومده ایمیل و شماره تلفنش رو وارد کرده. بعد متوجه شده شماره تلفنش اشتباه بوده و میره اون رو اصلاحش کنه. خب اینجا دیگه شما کاربر رو از قبل داری، فقط باید یه سری تغییرات رو بهش اعمال کنی. اگر کاربر رو نداشتیم دیتاش رو با متد POST باید میفرستادیم تا ساخته میشد.
DELETE: طبق موارد بالا کارکرد دلیت قابل حدسه. برای حذف یک منبع از سرور به کار میره.
⁉️ خب حالا HTTPS این وسط چیه؟ HTTPS نسخهای هستش که به وسیله گواهی TLS یا SSL اطلاعات ورودی به و خروجی از سرور رو رمزنگاری میکنه تا افرادی که بیرون موندن نتونن بفهمن اون دیتای اصلی چی بوده و امنیتش رو بیشتر میکنه؛ برای همین میگن اگه کار خرید، پرداخت، ثبت نام و ... داشتید همیشه حواستون باشه که بالا https باشه نه http.
هنوز خیلی چیزا مونده که راجب HTTP بگم و همچنین نکته های تستیِ ریزش و خب تو یه پست متنی واقعا سخته، موافق یه ویدیو برای این مبحث هستید؟ کل قضایایی از دنیای وب که نیازه بدونید رو براتون جمع میکنم. اگر آره تو نظرسنجی بالا شرکت کنید 👆🏻
ممنون بابت همراهیتون، ریکشن یادتون نره، پستا واقعا زمان و انرژی میبرن :))).
کنجکاو بمونید
#network #http #osi #tcpip #web #crossstack
🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
ما هرروز کلی عکس، فیلم، صدا، فایل و غیره برای هم ارسال میکنیم. هرروز به کلی وبسایت سر میزنیم و چیزای مختلفی میگیریم و میبینیم، اما همهی اینها چطور ممکن شده؟
⁉️ سوالی اولی که پیش میاد اینه که اصلا چیکار میکنه؟ HTTP مثل یک پل ارتباطی بین دوتا دستگاهه که تو بستر وب کار میکنن، و بهشون این قابیلت رو میده که بهم دیگه عکس، صدا، فایل، ویدیو و ... ارسال کنن. اما چطور این کارو میکنه؟
⁉️ حالا سوال: چطور مرورگر به سرور های دیجیکالا ( یا هر سرور دیگهای ) بفهمونه که چیکارش داره. شاید اصلا من داشتم مشخصات یک محصول رو ارسال میکردم تا توی سبد خریدم ذخیرش کنم، چجوری باید اینو بهش بگم؟ خب باید از Verb های HTTP استفاده کنم.
GET, POST, PUT, PATCH, DELETE
- اما برای چی و چجوری ازشون استفاده میکنیم؟
GET: برای دریافت دیتا و اطلاعات یک آدرس یا URL. مثلا برای مشاهده صفحهی اصلیِ http://digikala.com یک درخواست از نوع GET ارسال میشه. اگر اطلاعات بیشتری راجب URL میخواید یا نمیدونید چیه هشتگ #URL کامل توضیحاتش هست.
POST: این متُد (اسم دیگهی وِرب) برای ارسال داده سمت سرور هست. فرض کنید تو مثال دیتابیس تو پستِ بالا من میخواستم اطلاعات یک یوزر جدید رو ثبت کنم. باید با استفاده از یک متد POST این کار رو میکردم. چرا؟ چون متد پست قابلیت حمل بار داره. اگر متد GET موتورسیکلت باشه متد POST کامیونه. و میتونه با خودش یه مقدار بار (که بهش میگیم Request Body) حمل کنه و مثلا همون name, age, lastName رو با مقادیرش بذاریم توش و بفرستیم سمت سرور.
PATCH و PUT: جفتشون برای آپدیت کردن یک منبع در سرور به کار میرن. مثلا فرض کنید کاربر اومده ایمیل و شماره تلفنش رو وارد کرده. بعد متوجه شده شماره تلفنش اشتباه بوده و میره اون رو اصلاحش کنه. خب اینجا دیگه شما کاربر رو از قبل داری، فقط باید یه سری تغییرات رو بهش اعمال کنی. اگر کاربر رو نداشتیم دیتاش رو با متد POST باید میفرستادیم تا ساخته میشد.
DELETE: طبق موارد بالا کارکرد دلیت قابل حدسه. برای حذف یک منبع از سرور به کار میره.
⁉️ خب حالا HTTPS این وسط چیه؟ HTTPS نسخهای هستش که به وسیله گواهی TLS یا SSL اطلاعات ورودی به و خروجی از سرور رو رمزنگاری میکنه تا افرادی که بیرون موندن نتونن بفهمن اون دیتای اصلی چی بوده و امنیتش رو بیشتر میکنه؛ برای همین میگن اگه کار خرید، پرداخت، ثبت نام و ... داشتید همیشه حواستون باشه که بالا https باشه نه http.
هنوز خیلی چیزا مونده که راجب HTTP بگم و همچنین نکته های تستیِ ریزش و خب تو یه پست متنی واقعا سخته، موافق یه ویدیو برای این مبحث هستید؟ کل قضایایی از دنیای وب که نیازه بدونید رو براتون جمع میکنم. اگر آره تو نظرسنجی بالا شرکت کنید 👆🏻
ممنون بابت همراهیتون، ریکشن یادتون نره، پستا واقعا زمان و انرژی میبرن :))).
کنجکاو بمونید
#network #http #osi #tcpip #web #crossstack
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥26👍11⚡4
میگن فردا آزادیه؛ پس فردام یه عده دیگه آزاد میشن.
منم باهاتون آزاد میشم 💙
دلیل نبودن این مدتم همین چیزا بود؛ حالا بعدا صحبت میکنیم که کار زیاده.
امیدوارم موفق باشیم. دیگه بگیریم بخوابیم فردا شب صحبت میکنیم 🫶🏻
منم باهاتون آزاد میشم 💙
دلیل نبودن این مدتم همین چیزا بود؛ حالا بعدا صحبت میکنیم که کار زیاده.
امیدوارم موفق باشیم. دیگه بگیریم بخوابیم فردا شب صحبت میکنیم 🫶🏻
🔥16👍3👾2❤🔥1
اما در وهله اول بخاطر تاخیر ببخشید، راستش انقدر فشار وارده زیاد بود که ترجیح دادم یک هفتهای استراحت کنم.
زندگی کنکور های مهمتری از این به بعد برامون داره؛ آزمون های مهم تری هستن که باید از پسشون بربیایم و خودمون رو سرپا نگهداریم، درس های سختتری پیش رو هستن که پاسشون کنیم و بخونیمشون و یادشون بگیریم. و اگر مثل من عاشق وجههی آکادمیک کارتون هم بودید ولی کنکور براتون تلخ بوده؛ بنظرم جای نگرانی نیست. علاقه سوخت حرکت شما به صورت فردی برای دستیابی به اهدافتون خارج از محیط دانشگاست؛ همونطور که برنامهنویسی رو خودتون یاد گرفتید؛ علومکامپیوتر و ریاضی و ... رو هم میتونید خودتون یاد بگیرید 💙
درکل فارغ از نتیجه؛ امیدوارم هممون موفق باشیم چون به قول خودم تو این چند وقت اخیر، این کره آبی گنده جا واسه هممون داره 🌍
- نیما
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥26👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍3⚡1
۱- ساخت یه آبجکت جدید
۲- اجرا کردن هوک ها و لایف سایکل ها (AfterInsert, BeforeInsert و ...)
۳- ذخیره سازی آنی داده ها
۴- پرفورمنس
بررسیشون کنیم.
«درواقع خود فانکشن create هیچ چیزی رو به دیتابیس اضافه نمیکنه.»
«هوک ها فقط زمان صدا زدن متد save صدا زده میشن.»
«پس معیار نهایی استفاده از Create و Insert به این بستگی داره که شما میخواید چه کاری انجام بدید!»
کنجکاو بمونید.
#nestjs #typeorm #database #backend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥16⚡3🆒3👍2
⁉️ بکاند و فرانتاند چجوری باهم حرف میزنن؟
⁉️ اصلا اپلیکیشن موبایل چجوری با بکاند حرف میزنه؟
تو این پست با «API» آشنا میشم و همه اینارو جواب میدیم.
تو دنیای برنامهنویسی «API» همون منوی توی رستورانه. API ها یه فهرست از عملکردها و خدماتی هستن که یه بکاند میتونه ارائه بده و توضیح میده چجوری میشه ازش استفاده کرد.
«API» هارو حتی میشه یهجور دلال دیتا هم حساب کرد. چون درواقع واسطه میشن بین کاربر و جایی که پردازش واقعی داره انجام میشه. (مثل پیشخدمتی که سفارش شمارو به آشپزخونه میگه و شما خودتون نمیرید به آشپزخونه)
- بیاید براش یه مثال قابل لمس بزنیم:
۱- منو رو نگاه میکنید و غذارو انتخاب میکنید.
۲- به پیشخدمت میگید فلان غذارو رو میخواید.
۳- پیشخدمت سفارش شمارو به آشپزخونه میبره تا آشپز حاضرش کنه.
⁉️ تو هرکدوم از این مراحل چه اتفاقی میفته؟
1️⃣ مرحله اول: این مرحله داره فرانتاند رو توصیف میکنه، جایی که کاربر داره دکمه ها، اطلاعات، فرم ها و متن هارو میبینه.
2️⃣ مرحله دوم: اینجا پیشخدمت داره نقش API رو بازی میکنه. داره HTTP Request (سفارش) رو از فرانت اند (کاربر) میگیره و به بکاند (آشپزخونه) تحویل میده.
3️⃣ مرحله سوم: وقتی API این ریکوعست رو تحویل داد؛ بکاند هم با وصل شدن به دیتابیس و پیدا کردن اون دیتای مورد نظر و یه سری پردازش ها، دوباره جواب (غذا) رو میده به API (پیشخدمت) تا تحویل فرانتاند (مشتری/کاربر) بدتش.
✅ به عکس #2 نگاه کنید! «اصلا دلیل فلش دو طرفهای که بینشون کشیدم همینه». چون هر دوتاشون با اون پیشخدمت (API) سروکار دارن؛ نه خود آشپز مستقیم غذارو برای مشتری میبره، نه مشتری مستقیما میره آشپزخونه.
⁉️ ولی اصلا این API چه جنسیه؟ چه شکلیه؟
⚠️ اگه حس کردید مطالب این پست براتون ناآشناست؛ خوندن این سه تا پیام میتونه کمکتون کنه که این پست رو بهتر درک کنید.
- URL و درکل آدرس تو دنیای وب چی هست؟
- HTTP یعنی چی؟ و اصلا چی هست؟
- دیتابیس چیه؟
کنجکاو بمونید.
#API #crossstack #web #http
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥14👍4⚡2🆒2
⁉️ چه انواعی از API موجوده؟ الان باهم میفهمیم.
✅ شناخت انواع API به درک عمیقتر و دانش بیشتر شما کمک میکنه.
1️⃣ - REST API: یک استایل معماری برای توسعه اپلیکیشنهای تحت شبکه که از متدهای استاندارد HTTP (مثل GET, POST, PUT, DELETE) استفاده میکنه. فرمت داده معمولاً JSON هست. برای دسترسی به هر منبع یک URL مشخص وجود داره.
2️⃣ - GraphQL: برخلاف REST که هر منبع یک آدرس داره، GraphQL فقط یک آدرس داره و همه درخواستها به همون یه Endpoint ارسال میشن. GrapQL یه زبان کوئری هست که به کلاینت اجازه میده دقیقاً دادههای مورد نیازش رو درخواست کنه. از قابلیتهایی مثل بهروزرسانی لحظهای هم پشتیبانی میکنه، که برای اپلیکیشنهای وبسوکت ایدهآل هست.
3️⃣ - SOAP: یک پروتکل برای تبادل اطلاعات ساختاریافته بین وبسرویسها است. از XML استفاده میکنه و معمولاً روی بستر HTTP کار میکنه، اما میتونه با SMTP هم کار کنه.
4️⃣ - gRPC: یک فریمورک RPC (Remote Procedure Call) با پرفورمنس بالا که از پروتوکل بافر (Proto Buff) برای انتقال داده استفاده میکنه. برای میکروسرویسها خیلی مناسبه و از استریم دوطرفه (کلاینت به سرور و برعکس) پشتیبانی میکنه و برای سیستمهای Low-latency عالیه.
⁉️ حالا کدوم رو استفاده کنیم؟
✅ بستگی به نیاز شما داره. اگر API سادهای توسعه میدید، REST گزینه مناسبیه. اما اگر به انعطافپذیری بیشتری نیاز دارید، GraphQL انتخاب خوبی هست و برای میکروسرویسها و سیستمهای با تأخیر کم، gRPC بهترین گزینه است. این تصمیم به نیازسنجی دقیقی نیاز داره و به یادتون باشه که: «مجبور نیستید فقط یکی از اینها رو استفاده کنید.»
کنجکاو بمونید.
#gRPC #REST #graphql #soap #api #backend #crossstack
🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
⁉️ حالا کدوم رو استفاده کنیم؟
✅ بستگی به نیاز شما داره. اگر API سادهای توسعه میدید، REST گزینه مناسبیه. اما اگر به انعطافپذیری بیشتری نیاز دارید، GraphQL انتخاب خوبی هست و برای میکروسرویسها و سیستمهای با تأخیر کم، gRPC بهترین گزینه است. این تصمیم به نیازسنجی دقیقی نیاز داره و به یادتون باشه که: «مجبور نیستید فقط یکی از اینها رو استفاده کنید.»
کنجکاو بمونید.
#gRPC #REST #graphql #soap #api #backend #crossstack
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥46⚡3🔥3👾3👍1
NimaCodez | خفنیجات با نیما
Photo
اگه خواستید این پست رو بخونید و منو یه ریاکشن مهمون کنید!
❤🔥15😭2👍1
🔥 ۷ تا ترفند برای داشتن API Endpoint های تمیز و خفنی که هرکی دید کف کنه تو خوندن این پسته!
✅ نوشتن API هایی که نگهداریشون آسون باشه و خوانایی خوبی داشته باشن از توانایی های اصلی هر توسعه دهندهی بکاندیه؛ پس بریم یادش بگیریم.
نکته: منظور از resource در ادامه؛ اون شیوهی اصلی و اولیه نمایش یک منبع هست.
1️⃣ - کالشکن یا تک عضو؟
فرض کنید میخوایم سفارشات یک کافیشاپ رو از API دریافت کنیم، این URL باید کل سفارشات رو بده:
و این یکی باید یکیشون رو برگردونه:
2️⃣ - کالشکن ها و زیر مجموعه هاشون!:
هر کاربری میتونه سفارشاتی داشته باشه. از اونجایی که این سفارش ها هستن که مال کاربر هان نه برعکس؛ پس URL درستی که همهی سفارشات یک کاربر رو بده این خواهد بود:
و URLای که فقط یک سفارش یه کاربر رو برگردونه اینطور میشه:
3️⃣ - استفاده از اسم ها؛ بهجای فعل ها: فرض کنید بخوایم تمام یوزرهای دیتابیس رو در پنل ادمین نشون بدیم؛ URL درستش به این صورت میشه:
4️⃣ - برای ایجاد سلسله مراتب از Forward Slash استفاده کنید! مثالش همون مثال مورد دوم هست.
5️⃣ - از خط تیره برای جدا کردن کلمات استفاده کنید:
6️⃣ - اسم فانکشن های CRUD رو تو URL نیارید:
چیزی که تایین میکنه این ریسورس قراره خونده بشه، چیزی براش ارسال بشه یا دلیت بشه؛ اون HTTP Methodی هست که درخواست باهاش ارسال شده.
7️⃣ - فیلتر و مرتب سازی بر اساس کوئری:
برای سرچ تو یه ریسورس خاص و مرتب سازیش نیاز نیست API های جدایی بزنید. تو همون API از طریق کوئری دیتای مورد نیاز کارتون رو دریافت کنید!
کنجکاو بمونید.
#api #rest #conventions #backend
🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
نکته: منظور از resource در ادامه؛ اون شیوهی اصلی و اولیه نمایش یک منبع هست.
فرض کنید میخوایم سفارشات یک کافیشاپ رو از API دریافت کنیم، این URL باید کل سفارشات رو بده:
https://ye-chizi.com/orders
و این یکی باید یکیشون رو برگردونه:
https://ye-chizi.com/orders/{orderID}
هر کاربری میتونه سفارشاتی داشته باشه. از اونجایی که این سفارش ها هستن که مال کاربر هان نه برعکس؛ پس URL درستی که همهی سفارشات یک کاربر رو بده این خواهد بود:
https://ye-chizi.com/users/{userID}/orders
و URLای که فقط یک سفارش یه کاربر رو برگردونه اینطور میشه:
https://ye-chizi.com/users/{userID}/oders/{orderID}
https://ye-chizi.com/admin/get-users ❌
https://ye-chizi.com/admin/users ✅
https://ye-chizi.com/reports/remotejobs ❌
https://ye-chizi.com/reports/remote-jobs ✅
چیزی که تایین میکنه این ریسورس قراره خونده بشه، چیزی براش ارسال بشه یا دلیت بشه؛ اون HTTP Methodی هست که درخواست باهاش ارسال شده.
GET @ https://ye-chizi.com/orders => Get orders
POST @ https://ye-chizi.com/orders => Create a new order
DELETE @ https://ye-chizi.com/orders/{orderID} => Delete an order
برای سرچ تو یه ریسورس خاص و مرتب سازیش نیاز نیست API های جدایی بزنید. تو همون API از طریق کوئری دیتای مورد نیاز کارتون رو دریافت کنید!
https://ye-chizi.com/hotels?state=gilan&days=3
کنجکاو بمونید.
#api #rest #conventions #backend
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥19⚡2👍1🔥1🤝1
⁉ NodeJS چیه و چیکار میکنه؟ اصلا چرا هست؟
✅ اگه تازه شروع کردید آب دستتونه بذارید زمین و این ویسو گوش کنید. پر از اطلاعات مفیده واستون.
نکته ۱: Node سال ۲۰۰۹ ریلیز شد ولی سروصدا و صحبت دربارش از ۲۰۰۸ استارت شده.
نکته ۲: Netscape چون اولین مرورگری بود که خیلی فراگیر شد من با اصطلاح "اولین مرورگر" بهش اشاره کردم، وگرنه قبلش هم مرورگر های دیگه ای بودن.
کنجکاو بمونید.
#nodejs #runtime #js #engines #backend #frontend
🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
نکته ۱: Node سال ۲۰۰۹ ریلیز شد ولی سروصدا و صحبت دربارش از ۲۰۰۸ استارت شده.
نکته ۲: Netscape چون اولین مرورگری بود که خیلی فراگیر شد من با اصطلاح "اولین مرورگر" بهش اشاره کردم، وگرنه قبلش هم مرورگر های دیگه ای بودن.
کنجکاو بمونید.
#nodejs #runtime #js #engines #backend #frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
2⚡20👍6🆒3❤🔥2
⁉️ SQL Injection چیه و راهای جلوگیری ازش چیا هستن؟
✅ SQL Injection یکی از تکنینک های تزریق کده که بخاطر سو استفاده از آسیبپذیری های یک نرمافزار در حین ورود اطلاعات به یه فرم یا فیلد اتفاق میفته. مثلا یک فرم جلوی کاربر هست و ازش خواسته شده که سنش رو وارد کنه؛ ولی اون میتونه داخلش دستورات SQL مخربی بنویسه که مثلا کل جدول users شمارو حذف کنه.
🔥 حالا چطور باید از این اتفاق جلوگیری کرد؟
1️⃣ استفاده از ORM ها: ORM ها بخش زیادی از حملات SQL Injection رو با روشی که بهش میگن parameterized queries دفع میکنن و از برناممون محافظت میکنن.
2️⃣ اعتبارسنجی ورودی ها: باید یک سری اعتبارسنجی روی ورودی های کاربر هم از سمت فرانتاند و هم از سمت بکاند صورت بگیره تا حدالامکان هیچ دیتای مشکوک و مخربی سمت بکاند وارد نشه.
3️⃣ استفاده از میدلور های امنیتی: استفاده کردن از میدلورهایی مثل helmet و csurf.
4️⃣ آپدیت نگه داشتن کتابخونه ها: همیشه پیگیر آپدیت هایی که برای پکیج های مهم برنامتون منتشر میشه باشید و اگر مشکل امنیتیای فیکس شده حتما بعد از بررسی های لازم اون پکیج خاص رو آپدیت کنید تا از مشکلات احتمالی جلوگیری کنید.
کنجکاو بمونید.
#backend #nodejs #sqlinjection #sql #security #tips
🔗 @NimaCodez | © | Go Deep, Learn Deep, Ask Deep 🧠
🔥 حالا چطور باید از این اتفاق جلوگیری کرد؟
کنجکاو بمونید.
#backend #nodejs #sqlinjection #sql #security #tips
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥17👍8⚡2🆒1