استاد اصلاني عزيز سلام. سپاسگزارم كه اين آموزش ارزشمند را دوباره در سايت قرار داديد. ارادتمند
آموزش جامعRestful Api و معماری نرم افزار در Asp.Net
از پر تکرارترین کلمات در علم برنامهنویسی API است. این سرور ریموت یک واسط برنامهنویسی است که بین کتابخانه و سیستم عامل و برنامههای تحت وب میباشد که کاربر از آنها در خواست سرویس میکند. در این دوره قصد داریم کمی بیشتر با این رابط آشنا شویم. با ما همراه باشید.
Api چیست؟
Api برگرفته از «رابط برنامهنویسی اپلیکیشن» (Application Programming Interface) میباشد. شاید اگر به تازگی وارد حوزه برنامهنویسی شده باشید با این واژه آشنایی نداشته باشید اما افرادی که به صورت حرفهای در بازار کار برنامه نویسی مشغول به کار هستند این ابزار به یکی از پرکاربردترین ابزارهای روزانه برای آنها تبدیل شده است. در مقالات قبلی در ارتباط با یو آی صحبت کردیم و اشاره کردیم که ui نوعی رابطه کاربری انسانی است به این معنا که یک شخص با نرمافزارهای کامپیوتری تعامل دارد. اینک میخواهیم اشاره کنیم که Api شبیه به ui نوعی رابط کاربری است با این تفاوت که به جای انسان سیستمهای کامپیوتری با نرمافزارها در تعامل هستند. به نوعی Api یک سرور ریموت است. سرور ریموت بخشی از رایانه شماست که به منظور پردازش دستورات دریافتی بهینهسازی شده است. Api از مجموعه کدهای طراحی شده که تعامل بین نرمافزار و سیستم های متفاوت را امکانپذیر میکند.
کاربردهای Api:
- توسعهدهندگان به کمک این ابزار با میزان کد کمتر پلتفرمی ایجاد میکنند که به کمک آن نرمافزار طراحی شده با سرعت بیشتری اجرا گردد.
- این سرور ریموت کمک میکند تا بین برنامهها سازگاری بیشتری ایجاد شود. به گونهای که اگر بخواهید قسمتی را به صفحه وب سایت یا نرمافزاری اضافه کنید نیازی به طراحی دوباره نیست. صرفاً به کمک ای پی آی میتوانید به راحتی تغییرات را اعمال کنید.
- به کمک Apiها امنیت بیشتری برای دستگاهها ایجاد شد. چرا که دسترسی به منابع را کاملا کنترل میکنند.
- به منظور تعامل بیشتر بین اشیا، Apiها کمک میکنند تا موقعیت هر کدام از آنها به خوبی مشخص گردد. جالب است که بدانید گوگل مپ به کمک این سرور ریموت ارائه شده است.
- این سرور ریموت در تجارت بسیار با ارزش است. چرا که میتواند بین شما و همکارانتان به راحتی ارتباط برقرار کند.
- به کمک دادهها میتواند کسب و کارهایی با درآمد عالی را گسترش دهند.
Rest چیست و چه ارتباطی با Api دارد؟
این واژه بر گرفته از representational state transfer در سال ۲۰۰۵ به عنوان راهی برای انتقال داده از طریق شبکه شناخته شد. به نوعی یک مدل معماری برای طراحی برنامههای کاربردی تحت وب میباشد. به کمک آن میتوان ترکیبی از چندین مدل معماری بر پایهی شبکه استفاده کرد. حال منظور از RESTful API استفاده از معماریهای خاص به هدف برقراری ارتباط با سرورهای دیگر میباشد.
چرا REST API ارائه شد؟
استخراج اطلاعات روندی بسیار پیچیده و طولانی است که صرفاً از طریق API امکانپذیر نیست و به ابزارها و متدهای دیگری نیاز دارد. REST API یک مجموعهای از اطلاعات درخواست کاربر را میسنجد مقادیر متناسبی از شی را برای کلاینت ارسال میکند.
چگونه سیستم REST به RESTful تبدیل میشود؟
اگر سیستم REST از شش مزیت برخوردار باشد به عنوان RESTful شناخته میشود:
1. uniform interface
(دارای رابط یا اینترفیس یکنواخت) برای ارائه عکس العمل میبایست با استفاده از HTTP اطلاعات واضح و شفافی در اختیار کلاینت قرار دهیم. همچنین باید برای استفاده از روشهای متفاوت از یک منبع بهره ببریم.
2. client-server
(به معنای سرویسدهنده) اینجا کلاینت در واقع کاربر یا نرمافزاری است که از API بهره میبرد. در معماری API کلاینت جایگاهی در فرانت اند و سرور جایگاهی در بک اند دارد. (در مقالات قبلی به معرفی فرانت اند و بک اند پرداختیم.) این نوع معماری با کمترین میزان وابستگی بین کلاینت و سرور کمک میکند تا توسعهدهندگان به راحتی اپلیکیشنها را توسعه دهند.
3. code on demand
(قابلیت کد داشته باشد که ویژگی اختیاری است.)
4. stateless
(بدون حالت باشد) هیچ دادهای نباید در زمان پردازش انتقال درخواست روی سرور ذخیره شود. بدین منظور به جای ذخیره کردن وضعیت کلاینت در سمت سرور، دادهها سمت خود کلاین ذخیره میشوند و در صورت درخواستی برای سرور ارسال می گردد. یکی از بهترین مزیتهای این ویژگی این است که کلاینت به هیچ عنوان ضمن تغییرات صورت گرفته بر سرور با مشکل مواجه نمیگردد.
5. layered system
(از سیستم لایهبندی شده برخوردار باشد.) در میان کلاینت و سروری که پاسخ یا عکسالعملی ارائه میدهد ممکن است سرور های متفاوتی قرار بگیرد. یک سرور به عنوان لایه امنیتی، یک سرور به عنوان لایه کش و موارد دیگر. در چنین معماری کلاینت از وجود سرورهای واسطه اطلاعی ندارد. در ضمن هیچکدام از این لایهها نباید به درخواست کلاینت یا عکسالعمل ارائه شده تغییری ایجاد کنند.
6. cacheable
(از کش یا حافظه پنهان برخوردار باشد.) این قابلیت کمک میکند تا کلاینت عکس العمل دریافتی را به صورت کش ذخیره کند. به نوعی می توان گفت REST یک معماری است که به توسعهدهنده کمک میکند تا به روش خاصی یک وب سرور را طراحی کند. اما
RESTful API یک سرویس است که میتواند این معماری را پیاده سازی کند. پسوند «ful» به معنی «داشتن قابلیت» REST یا تطابق داشتن با این سبک معماری است. به عبارتی دیگر این وبسرویسها یا APIها از سبک و شیوه معماری REST استفاده میکنند.
اهداف استفاده از معماری Rest:
- اصلیترین هدف استفاده از معماری REST این است که برای برقراری بین ماشینها به جای استفاده از متدهای پیچیدهای مانند CORBA، RPC یا SOAP از HTTP ساده بهره گرفت.
- به جای هدر پروتکل htpp در url بتوان کوئری یا درخواست اعمال کرد.
- به کمک معماری rest میتوان url ها را واسطه قرار داد و به راحتی مسیرهای مد نظر را مشخص کرد.
- به کمک این ابزار میتوان از کدهای htpp بهره گرفت.
- بهتر است به جای اینکه از REST به عنوان یک تکنولوژی یاد کرد آن را به عنوان معماری در نظر داشته باشیم که در علم برنامهنویسی قابلیت اطمینان، کارایی قابلیت حمل، سادگی، نظارت و امکان مشاهده و انعطافپذیری را افزایش میدهد.
4 روش بهکارگیری RESTful API
- GET: به منظور دریافت یک آبجت
- POST: برای ساخت و ارسال یک آبجکت
- PUT: برای تغییر و جایگزین کردن یک آبجکت
- DELETE: برای حذف یک آبجکت
منظور از ابجکت همان درخواست یا کوئری به سرور میباشد.
به طور کلی، به همه این متُدها (عملیات) اصطلاحاً «CRUD» گفته میشود که سرنامی برای هر یک از کلمات «Update» ،«Reard» ،«Create» و «Delete» میباشد که در بانک اطلاعاتی با آنها سروکار داریم.
GET یکی از سادهترین و برای رایجترین روشهای استفاده از hptt است که صرفاً اجازه میدهد کاربر اطلاعات را بخواند و اجازه نوشتن و تغییر آنها را ندارد. بنابراین هیچ گونه خطری سرویس ارائه دهنده را تهدید نمیکند. این متد صرفا یک سری اطلاعات را (معمولا به صورت رایگان) در اختیار کاربر قرار میدهد. در دو روش put و delete قبل از اجرا درخواست توسعهدهنده میبایست از طریق دریافت شناسه اختصاصی یا ثبت نام کردن در سرویس مد نظر اطلاعات او تایید شود. این دو روش معمولا در اپلیکیشنهای تحت وب به کمک توسعهدهندگان قابل استفاده است.
در پایان
در این محتوا سعی کردیم شما را با این سرور ریمت آشنا کنیم. لازم است بدانید که با وجود کاربرد زیاد API ها خیلی از افراد روش درست و اصولی کاربرد آنها را نمیدانند. در آموزش جامع ایجاد و استفاده از Restful Api در Asp.Net Core و آموزش معماری پیار ( Onion Architecture ) از تیم مدرسان برنامه نویسی کدیاد به تسلط کافی و لازم بر سرور ریموت خواهید رسید.
سرفصل های دوره
Api چیست ؟
روند کار Http
json
پست من
ایجاد پروژه اول
ساخت Database و افزودن سرویس
توضیحاتی در مورد پروژه
ساخت اولین متد (HttpGet)
استفاده از Automapper
Routing در Api
دریافت اطلاعات در Api
ایجاد ویلا با متد پست
ویرایش و حذف (HttpPatch & HttpDelete)
ساخت api برای جزئیات ویلا
تغییر جدول ویلا (مزیت Automapper)
کامل کردن Api جزییات ویلا
افزودن Swagger به پروژه
استفاده از کامنت در داکیومنت
نمایش پاسخ ها در Swagger
صفحه بندی ویلا ها
افزودن Versioning و دریافت در Route
جدا کردن ورژن های Api در Swagger
افزودن ورژن جدید
گرفتن ورژن در Header و Query
تست ورژن بندی در post man
JWT چیست ؟
ثبت نام
افزودن jwt
عملیات ورود و احراز هویت
افزودن کلاس Jwt Setting
ادامه احراز هویت
افزودن احراز هویت به swagger
تکمیل جزییات Api
ایجاد پروژه فرانت
افزودن قالب
ثبت نام
ثبت نام ۲
ورود به سایت
ورود به سایت 2
دریافت لیست ویلا ها
ارسال توکن احراز هویت
احراز هویت پروژه فرانت
دریافت صفحه بندی ویلا ها از Api
افزودن عکس به ویلا
افزودن یک GenericRepository برای ارسال درخواست بهApi
دریافت لیست ویلا از Api و نمایش در DataTable
افزودن ویلا
ویرایش و حذف ویلا و نمایش تصویر
دریافت و نمایش جزییات ویلا
افزودن,ویرایش و حذف جزییات
CORS چیست ؟
معماری پیاز
شروع یک پروژه (لایه دامین)
لایه Application
لایه Infrastracture
لایه Infrastracture (2)
پیاده سازی قوانین Application
ویرایش و مرور پروژه
افزودن لایه presentation و ایجاد دیتابیس
نوشتن یک api برای ارسال لیست شهرها و استان ها
افزودن جداولی برای محاسبه پست
ادامه افزودن پست
افزودن پست با api
ویرایش جدول پست
پایان فصل
شروع پروژه (ماژول بلاگ)
ماژول بلاگ - ۲
ماژول بلاگ - ۳
ماژول بلاگ - ۴
ماژول کاربران
ماژول کاربران -2
ماژول کاربران -3
ماژول کاربران - 4
افزودن قالب اصلی وب سایت
عملیات ورود به سایت
ادامه عملیات ورود به سایت
افزودن قالب ادمین
افزودن سطح دسترسی در پنل ادمبن
افزودن sweet alert
افزودن نقش ها به پنل ادمین
افزودن نقش ها به پنل ادمین - 2
افزودن View های نقش ها
مقالات در پنل ادمین
ادامه وبلاگ
view های وبلاگ در ادمین
ادامه view های وبلاگ در ادمین
اتمام قسمت وبلاگ در پنل ادمین
افزودن چند ماژول و تمیز کردن کد
تکمیل Domain در ماژوا سایت و بهینه سازی کد
افزودن ماژول seo
افزودن ماژول پست
تکمیل ماژول ایمیل و ساخت جداول دیتا بیس
تکمیل کنترولر های ادمین
تکمیل کنترولر ها و افزودن لایه Query
تکمیل کنترولر ها (Email)
کنترولر شهر و استان
تکمیل ماژول پست
کنترولر پست
کنترولر Seo
افزودن View برای Seo ادمین
افزودن View های بنر ادمین
تکمیل view های ادمین (اسلایدر)
تکمیل view های ادمین (شهر و استان)
ادامه تکمیل view های ادمین (شهر و استان)
view های پست در ادمین
view های قیمت پست در ادمین
view های قیمت پست در ادمین (ادامه)
مدیریت عکس های آپلود شده
افزودن صفحه بندی به UI
ایمیل های کاربران در خبر نامه (ادمین)
ادامه view های خبرنامه در ادمین
شروع تکمیل ui سمت کاربر (ViewComponents)
تکمیل ui سمت کاربر (2)
تکمیل ui سمت کاربر (3)
تکمیل ui سمت کاربر (4)
تکمیل ui سمت کاربر (5)
تکمیل ui سمت کاربر (6)
تکمیل ui سمت کاربر (7)
افزودن layout وبلاگ
تکمیل قسمت وبلاگ UI
تکمیل قسمت وبلاگ UI (2)
تکمیل قسمت وبلاگ UI (3)
تکمیل قسمت وبلاگ UI (4)
تکمیل قسمت وبلاگ UI (5)
افزودن صفحه آرشیو مقالات
افزودن صفحه آرشیو مقالات (2)
تکمیل صفحه آرشیو مقالات
افزودن صفحه تکی مقاله
افزودن نظرات به بلاگ
افزودن نظرات به بلاگ (2)
افزودن نظرات به بلاگ (3)
افزودن نظر
تکمیل افزودن نظر
نظرات در پنل ادمین
نظرات در پنل ادمین (2)
تکمیل صفحات ui
صفحه تماس با ما
صفحه تماس با ما (ارسال پیام)
تکمیل ارسال پیام
صفحه درباره ما
افزودن چند جدول به ماژول پست برای فروش Api پست
تکمیل ماژول و ساخت جدوال
ساخت یک تابع برای محاسبه قیمت پست
ساخت یک سرویس و یک Api برای محاسبه پست
تست Api پست با PostMan
افزودن پکیج های فروش Api به پنل ادمین
افزودن پکیج های فروش Api به ui اصلی
افزودن پکیج های فروش Api به ui اصلی (2)
افزودن پنل کاربر به سایت
افزودن یک کنترولر برای فاکتور Api پست
تکمیل کنترولر برای فاکتور Api پست
تکمیل کنترولر برای فاکتور Api پست (2)
کامل کردن API و ارسال درخواست با کد کاربر
افزودن فکتور های پشت به پنل کاربری
افزودن فاکتور های پست به پنل کاربری (2)
تکمیل پنل کاربر (ویرایش اطلاعات شخصی)
تکمیل پنل کاربر (افزودن آدرس های کاربر)
تکمیل پنل کاربر (افزودن آدرس های کاربر 2)
در خواست به Api پست از یک پروژه دیگر
در خواست به Api پست از یک پروژه دیگر (2)
ایجاد ماژول پرداخت ها قسمت اول
ایجاد ماژول پرداخت ها قسمت دوم
ایجاد کیف پول قسمت اول
ایجاد کیف پول قسمت دوم
افزودن کیف پول به پنل کاربر
افزودن کاربران و کیف پول به پنل ادمین
افزودن کاربران و کیف پول به پنل ادمین بخش دوم
افزودن کاربران و کیف پول به پنل ادمین بخش سوم
افزودن کاربران و کیف پول به پنل ادمین بخش چهارم
شارژ کیف پول توسط ادمین (ajax)
افزودن کاربر توسط ادمین (ajax)
افزودن زرین پال
افزودن زرین پال 2
افزودن ماژول محصولات
افزودن ماژول محصولات 2
افزودن جداول فاکتور
افزودن جداول فاکتور 2
افزودن تخفیف و انبار
افزودن درخواست فروشندگی
افزودن درخواست فروشندگی به ادمین
تکمیل افزودن درخواست فروشندگی
افزودن دسته بندی محصولات به پنل ادمین
افزودن کنترلر محصولات به ادمین
تکمیل محصولات در پنل ادمین
افزودن محصولات به پنل فروشنده
افزودن محصولات به پنل فروشنده 2
افزودن محصولات به پنل فروشنده 3
افزودن انبار داری به پنل فروشنده
تکمیل انبار داری در پنل فروشنده
افزودن صفحه فروشگاه
افزودن صفحه فروشگاه قسمت 2
افزودن صفحه فروشگاه قسمت 3
افزودن صفحه محصول
افزودن صفحه محصول 2
افزودن صفحه محصول 3
افزودن تخفیفات به پنل فروشنده
پیشنیاز های دوره چه چیزهایی هستند؟
- C#
- Asp.Net Core
نظرات دانشجویان
...medz11 |
دانشجوی دوره آموزش جامعRestful Api و معماری نرم افزار در Asp.Net
khalil azmoon |
دانشجوی دوره آموزش جامعRestful Api و معماری نرم افزار در Asp.Net
سلام خدمت مهندس اصلانی عزیز ممنون بابات آموزش عالی . برخی کلاس هایی که شما از اون استفاده می کنین و از سیستم خودتون داخل پروزه اضافه می کنین مانند SlugUtitlity.cs ما به اون ها دسترتسی ندارم ممنون میشوم اون کلاس های آماده ای که استفاده می کنین هم بزارین
mohammadDev AMN |
دانشجوی دوره آموزش جامعRestful Api و معماری نرم افزار در Asp.Net
سلام وقت بخیر استاد ممنون از دوره خوبتون،هرچه قدر که میرم جلوتر به ارزش دوره بیشتر پی میبرم خسته نباشید واقعا. یه داکیومنت کامله برای بلاگ و ای پی آی نویسی
اسداله حسام |
دانشجوی دوره آموزش جامعRestful Api و معماری نرم افزار در Asp.Net
سلام دوست عزیز. من چندین اموزش از سایتهای دیگه دیده بودم. ولی انصافا جا داره تبریک بگم بهتون چون هیچ اموزشی اینقدر ساده و روان گفته نشده
رضا شوهانی |
دانشجوی دوره آموزش جامعRestful Api و معماری نرم افزار در Asp.Net
خسته نباشید ، واقعا دوره ی خوبیه و تشکر میکنم بابت همچین دوره ی پربار که پروژه محور هم هست ، فقط سوالم اینه ک باقی پروژه کی بارگزاری میشه؟ تایمش مشخص هست؟
سوالات متداول
به زبان ساده، API مخفف کلمه (Application Programming Interface) می باشد که به عنوان یک رابط میان کاربر و سرور عمل میکند. کاربر بسته به شرایط خود درخواست گرفتن اطلاعات را به API می دهد و API آن را به سرور منتقل میکند و پس از دریافت اطلاعات، آن را به بهترین نحو ممکن به کلاینت تحویل می دهد.
به زبان ساده، استخراج داده های گسترده فرآیندی وقت گیر و طولانی مدت خواهد بود که از طریق API ها امکان پذیر نیست و ما باید به دنبال ابزار های دیگری مانند، Rest API باشیم که بتواند، اطلاعات درخواست شده از سمت کاربر را بسنجد و اطلاعات خواسته شده را به صورت دقیق به کلاینت ارسال کند.
استفاده از معماری Rest در راه اندازی و توسعه API ها کاربرد های گسترده ای را در روند توسعه برنامه به همراه خواهد داشت که عبارت اند از : (افزایش سرعت بیشتر در توسعه، کد کمتر، سازگاری با نرم افزار های دیگر، امنیت بیشتر برای دستگاه ها، ایجاد کسب و کار با درآمد عالی و حرفه ای).
استفاده از معماری Rest API اهداف بسیار جذابی را برای وب سایت شما به دنبال دارد که برخی از این اهداف عبارت اند از: (برقراری ارتباط بین ماشین ها به جای استفاده از متد های پیچیده، واسطه قرار دادن Url های قرارداد، بهره گیری و استفاده از کد های Http، قابلیت اطمینان - حمل - سادگی در معماری Rest API).
بله، این دوره آموزشی کاملا پروژه محور است و هدف اصلی این دوره این است که مبحث API را در کنار انجام پروژه و در حین آن به درستی یاد بگیرید. به همین دلیل در این دوره آموزشی دو پروژه] وب سایت کامل با API توسعه داده خواهد شد.
در این دوره آموزشی خارق العاده، قرار است که 2 پروژه اصلی توسعه داده شود که به ترتیب، پروژه اول (ایجاد پروژه وب با استفاده از API) می باشد و پروژه دوم (ساخت یک فروشگاه اینترنتی ماژولار می باشد) تا بتوانید درک عمیق تری از نحوه کارکرد API بدست آورید.
دوره آموزشی ایجاد و استفاده از Restful API برای کسانی که دوست دارند مفهوم API و نحوه کارکرد آن را در پروژه های کوچک و بزرگ ببینند، بسیار مناسب است. شما عزیزان بعد از یادگیری یک زبان برنامه نویسی می توانید در این دوره جذاب و فوق العاده آکادمی کدیاد ثبت نام نمایید و از این پس پروژه های خود را با استفاده از API توانمند تر نشان دهید.
در واقعیت، برای اینکه بتوانید این دوره ی جامع و جذاب را شروع کنید، نیازمند درک بالایی از زبان برنامه نویسی هستید تا بتوانید ساختار API را در زبان برنامه نویسی مورد استفاده به درستی درک کنید. به همین دلیل ما به شما پیشنهاد می کنیم تا دوره های مشابه این دوره را در قدم اول به اتمام برسانید تا بتوانید در راه اندازی API و و استفاده از آن به مشکل نخورید.