استاد اصلاني عزيز سلام. سپاسگزارم كه اين آموزش ارزشمند را دوباره در سايت قرار داديد. ارادتمند
آموزش ایجاد و استفاده از Restful Api در Asp.Net و آموزش معماری پیاز
از پر تکرارترین کلمات در علم برنامهنویسی API است. این سرور ریموت یک واسط برنامهنویسی است که بین کتابخانه و سیستم عامل و برنامههای تحت وب میباشد که کاربر از آنها در خواست سرویس میکند. در این دوره قصد داریم کمی بیشتر با این رابط آشنا شویم. با ما همراه باشید.
Api چیست؟
Api برگرفته از «رابط برنامهنویسی اپلیکیشن» (Application Programming Interface) میباشد. شاید اگر به تازگی وارد حوزه برنامهنویسی شده باشید با این واژه آشنایی نداشته باشید اما افرادی که به صورت حرفهای در بازار کار برنامه نویسی مشغول به کار هستند این ابزار به یکی از پرکاربردترین ابزارهای روزانه برای آنها تبدیل شده است. در مقالات قبلی در ارتباط با یو آی صحبت کردیم و اشاره کردیم که ui نوعی رابطه کاربری انسانی است به این معنا که یک شخص با نرمافزارهای کامپیوتری تعامل دارد. اینک میخواهیم اشاره کنیم که Api شبیه به ui نوعی رابط کاربری است با این تفاوت که به جای انسان سیستمهای کامپیوتری با نرمافزارها در تعامل هستند. به نوعی Api یک سرور ریموت است. سرور ریموت بخشی از رایانه شماست که به منظور پردازش دستورات دریافتی بهینهسازی شده است. Api از مجموعه کدهای طراحی شده که تعامل بین نرمافزار و سیستم های متفاوت را امکانپذیر میکند.
کاربردهای این سرور ریموت:
_ توسعهدهندگان به کمک این ابزار با میزان کد کمتر پلتفرمی ایجاد میکنند که به کمک آن نرمافزار طراحی شده با سرعت بیشتری اجرا گردد.
_ این سرور ریموت کمک میکند تا بین برنامهها سازگاری بیشتری ایجاد شود. به گونهای که اگر بخواهید قسمتی را به صفحه وب سایت یا نرمافزاری اضافه کنید نیازی به طراحی دوباره نیست. صرفاً به کمک ای پی آی میتوانید به راحتی تغییرات را اعمال کنید.
_ به کمک Apiها امنیت بیشتری برای دستگاهها ایجاد شد. چرا که دسترسی به منابع را کاملا کنترل میکنند.
_ به منظور تعامل بیشتر بین اشیا، Apiها کمک میکنند تا موقعیت هر کدام از آنها به خوبی مشخص گردد. جالب است که بدانید گوگل مپ به کمک این سرور ریموت ارائه شده است.
- این سرور ریموت در تجارت بسیار با ارزش است. چرا که میتواند بین شما و همکارانتان به راحتی ارتباط برقرار کند.
_ به کمک دادهها میتواند کسب و کارهایی با درآمد عالی را گسترش دهند.
اما Rest چیست و چه ارتباطی با Api دارد؟
این واژه بر گرفته از representational state transfer در سال ۲۰۰۵ به عنوان راهی برای انتقال داده از طریق شبکه شناخته شد. به نوعی یک مدل معماری برای طراحی برنامههای کاربردی تحت وب میباشد. به کمک آن میتوان ترکیبی از چندین مدل معماری بر پایهی شبکه استفاده کرد. حال منظور از RESTful API استفاده از معماریهای خاص به هدف برقراری ارتباط با سرورهای دیگر میباشد.
چرا REST API ارائه شد؟
استخراج اطلاعات روندی بسیار پیچیده و طولانی است که صرفاً از طریق API امکانپذیر نیست و به ابزارها و متدهای دیگری نیاز دارد. REST API یک مجموعهای از اطلاعات درخواست کاربر را میسنجد مقادیر متناسبی از شی را برای کلاینت ارسال میکند.
چگونه سیستم REST به RESTful تبدیل میشود:
اگر سیستم REST از شش مزیت برخوردار باشد به عنوان RESTful شناخته میشود:
۱. uniform interface
(دارای رابط یا اینترفیس یکنواخت) برای ارائه عکس العمل میبایست با استفاده از HTTP اطلاعات واضح و شفافی در اختیار کلاینت قرار دهیم. همچنین باید برای استفاده از روشهای متفاوت از یک منبع بهره ببریم.
۲. client-server
( به معنای سرویسدهنده) اینجا کلاینت در واقع کاربر یا نرمافزاری است که از API بهره میبرد. در معماری API کلاینت جایگاهی در فرانت اند و سرور جایگاهی در بک اند دارد. (در مقالات قبلی به معرفی فرانت اند و بک اند پرداختیم.) این نوع معماری با کمترین میزان وابستگی بین کلاینت و سرور کمک میکند تا توسعهدهندگان به راحتی اپلیکیشنها را توسعه دهند.
۳.code on demand
(قابلیت کد داشته باشد که ویژگی اختیاری است.)
۴. stateless
(بدون حالت باشد) هیچ دادهای نباید در زمان پردازش انتقال درخواست روی سرور ذخیره شود. بدین منظور به جای ذخیره کردن وضعیت کلاینت در سمت سرور، دادهها سمت خود کلاین ذخیره میشوند و در صورت درخواستی برای سرور ارسال می گردد. یکی از بهترین مزیتهای این ویژگی این است که کلاینت به هیچ عنوان ضمن تغییرات صورت گرفته بر سرور با مشکل مواجه نمیگردد.
۵.layered system
(از سیستم لایهبندی شده برخوردار باشد.) در میان کلاینت و سروری که پاسخ یا عکسالعملی ارائه میدهد ممکن است سرور های متفاوتی قرار بگیرد. یک سرور به عنوان لایه امنیتی، یک سرور به عنوان لایه کش و موارد دیگر. در چنین معماری کلاینت از وجود سرورهای واسطه اطلاعی ندارد. در ضمن هیچکدام از این لایهها نباید به درخواست کلاینت یا عکسالعمل ارائه شده تغییری ایجاد کنند.
۶.cacheable
(از کش یا حافظه پنهان برخوردار باشد.) این قابلیت کمک میکند تا کلاینت عکس العمل دریافتی را به صورت کش ذخیره کند. به نوعی می توان گفت REST یک معماری است که به توسعهدهنده کمک میکند تا به روش خاصی یک وب سرور را طراحی کند. اما
RESTful API یک سرویس است که میتواند این معماری را پیاده سازی کند. پسوند «ful» به معنی «داشتن قابلیت» REST یا تطابق داشتن با این سبک معماری است. به عبارتی دیگر این وبسرویسها یا APIها از سبک و شیوه معماری REST استفاده میکنند.
اهداف استفاده از معماری Rest:
_ اصلیترین هدف استفاده از معماری REST این است که برای برقراری بین ماشینها به جای استفاده از متدهای پیچیدهای مانند CORBA، RPC یا SOAP از HTTP ساده بهره گرفت.
_ به جای هدر پروتکل htpp در url بتوان کوئری یا درخواست اعمال کرد.
_ به کمک معماری rest میتوان url ها را واسطه قرار داد و به راحتی مسیرهای مد نظر را مشخص کرد.
_به کمک این ابزار میتوان از کدهای htpp بهره گرفت.
_ بهتر است به جای اینکه از REST به عنوان یک تکنولوژی یاد کرد آن را به عنوان معماری در نظر داشته باشیم که در علم برنامهنویسی قابلیت اطمینان، کارایی قابلیت حمل، سادگی، نظارت و امکان مشاهده و انعطافپذیری را افزایش میدهد.
چهار روش بهکارگیری 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
افزودن قالب اصلی وب سایت
عملیات ورود به سایت
ادامه عملیات ورود به سایت
پیشنیاز های دوره چه چیزهایی هستند؟
- C#
- Asp.Net Core
نظرات دانشجویان
