شروع کار با API وب در ASP.NET 5

دوشنبه 3 آبان 1400

آیا شما هم علاقه مند به کار کردن با API وب ASP.NET هستید؟ ما در این مطلب قصد داریم کمی بیشتر درباره ئحوه کار با API وب ASP.NET در دات نت 5 صحبت کنیم.

 شروع کار با API وب در  ASP.NET 5

قبل از این که بخواهیم درباره API وب ASP.NET صحبت کنیم باید بدانید که امروزه بسیاری از اپلیکیشن ها با استفاده از API های وب طراحی و ساخته می شوند. API وب به توسعه دهندگان یا مهندسان ادغام سازی اجازه می دهد تا بین اپلیکیشن های مختلف ارتباط برقرار کنند. این API ها می توانند وابستگی های برنامه را کاهش داده و باعث می شود تا در سطح اپلیکیشن کمتر با یکدیگر در ارتباط باشند.

دقت داشته باشید که API های وب در واقع نوعی فناوری به شمار نمی آیند بلکه یک نوع مفهوم هستند که می توانند با هر فناوری مانند پی اچ پی، Node js، جاوا، دات نت و ... ایجاد شوند. دقت داشته باشید که شما نیازی به یادگیری فناوری هایی که از این مفهوم پشتیبانی می کنند ندارید. شما می توانید به راحتی آنها را پیاده سازی کرده و از آن استفاده کنید.

 ما در این مقاله قصد داریم کمی بیشتر درباره API های وب صحبت کنیم و اطلاعاتی درباره آنها در اختیار شما قرار دهیم. علاوه بر این درباره API وب ASP.NET نیز صحبت خواهیم کرد و سعی می کنیم اطلاعات کاملی را درباره مفاهیم زیر در اختیار شما قرار دهیم:

-  API و API وب چیست

-  آشنایی با متدهای HTTP

- API وب ASP.NET

-  ساخت یک API وب ASP.NET ( .NET core 5)

- پیاده سازی Swagger برای تست کردن API های وب

- تست کردن API وب ASP.NET

-  مزایای API وب ASP.NET

آشنایی با API

API که خلاصه عبارت Application Programming Interface است نوعی اینترفیس می باشد که دارای مجموعه ای از توابع برای متصل کردن اپلیکیشن ها به یکدیگر است. به صورت عادی API برنامه نویسان را قادر می سازد تا از ویژگی های خاص، سرویس ها، دسترسی به داده های یک برنامه خاص، انجام عملیات های منطقی، عملیات هایی در پایگاه داده و ... بهره مند شوند. API ها دارای متدها، روال ها، درخواست ها، زیر روال ها و endpoint های ساده ای هستند.

API وب را بیشتر بشناسید

اکثر API ها عموما مبتنی بر وب هستند و می توان از طریق اینترنت و با درخواست HTTP به آنها دسترسی پیدا کرد. API وب یا وب API در واقع نوعی مفهوم توسعه وب است که می توان آن را با استفاده از هر گونه فناوری مبتنی بر وبی توسعه داد. این مفهوم را می توان در هر برنامه و اپلیکیشنی صرف نظر از هر زبان برنامه نویسی مورد استفاده قرار داد. نکته بسیار مهمی که در خصوص این مفهوم وجود دارد این است که برنامه نویسان برای پیاده سازی آن در متدهای خود نیازی به آشنایی با فناوری ها و زبان های برنامه نویسی دیگر این API ها ندارند.

به عنوان مثال API گوگل به طور گسترده ای پیاده سازی شده است یا این که در اپلیکیشن های مختلف از جمله گوگل مپ، فاصله، زبان، سرویس های شناختی و ... ادغام شده است. این روش ها در واقع از API گوگل استفاده کرده و نیازی به آشنایی با فناوری ها و زبان های برنامه نویسی استفاده شده در آن ندارند. در واقع برای استفاده از این API ها شما تنها نیازمند آدرس اینترنتی endpoint و پارامترهای مورد نیاز هستید.

به طور مشابه شرکت مایکروسافت طیف وسیعی از API های وب را برای ارائه خدمات مختلف مانند سرویس های شناختی و سرویس های Azure که این قابلیت را دارند که با هر نوع اپلیکیشنی ادغام شوند در اختیار شما قرار می دهد.

متدهای HTTP

HTTP که مخفف عبارت Hypertext Transfer Protocol یک پروتکل اپلیکیشن است که برای انتقال اطلاعات و داده ها در سطح اینترنت مورد استفاده قرار می گیرد. افعال HTTP به منظور دریافت داده از سرور یا ارسال داده به آن مورد استفاده قرار می گیرند. از جمله رایج ترین افعال HTTP می توان به موارد زیر اشاره کرد:

-  GET: این درخواست یا عملیات برای دریافت داده از وب سرویس مورد استفاده قرار می گیرد.

-  POST: این درخواست یا عملیات برای اضافه کردن یک محتوا یا پیام یا برای ساخت یک عنصر داده ای جدید در وب سرویس استفاده می شود.

-  PUT: این درخواست یا عملیات یک عنصر از داده ها را در وب سرویس اصلاح و ویرایش می کند.

-  DELETE: این عملیات یک عنصر را از وب سرویس حذف می کند.

-  PATCH: این عملیات در واقع یک عنصر داده ای را در منبع وب که در حال حاضر وجود دارد اصلاح می کند. این کار با تعریف مجموعه ای از دستورالعمل ها درباره این که چگونه این آیتم باید به روزرسانی شود صورت می گیرد. این عملیات به طور معمول در اپلیکیشن های نمونه استفاده نمی شود.

API وب ASP.NET

API وب ASP.NET یک فریم ورک دات نت برای ایجاد یا توسعه RESTFUL API با استفاده از سرویس های مبتنی بر HTTP است که با استفاده از هر نوع اپلیکیشنی قابل دسترسی هستند. API وب ASP.NET می تواند با طیف گسترده ای از کلاینت ها ارتباط برقرار کند که این کار از طریق مرورگرها، دستگاه های موبایل و با استفاده از وب سرویس ها صورت می گیرد.

کلاینت های این API از طریق درخواست های HTTP با آن ارتباط برقرار می کنند تا اطلاعات را با استفاده از JSON، XML یا سایر فرمت های داده ای منتقل کنند. شاید برای شما جالب باشد که بدانید این مسئله برای اپلیکیشن های تک صفحه ای نیز برقرار است که در آن کل منطق، عملیات ها و ارتباطات مربوط به پایگاه داده از طریق API انجام می شوند.

دقت داشته باشید که API های وب زمانی به عنوان RESTful API شناخته می شوند که با استفاده از گزینه های زیر تعریف شوند:

- درخواست های HTTP با GET، POST، PUT، DELETE و PATCH

- یک URL پایه

- استفاده از JSON و XML برای داده ها

ساخت API وب ASP.NET

حال در این بخش قصد داریم به ساخت یک API وب ASP.NET با استفاده از دات نت 5 بپردازیم. از جمله مواردی که ما برای این کار استفاده می کنیم می توان به موارد زیر اشاره کرد:

- نسخه 2019 ویژوال استودیو( هر یک از نسخه های community، professional، Enterprise)

- دات نت 5

حال ویژوال استودیو را باز کرده و یک پروژه جدید ایجاد می کنیم.

در ادامه ما قالب پروژه خود را روی ASP.NET Core Web API به شکل زیر تنظیم می کنیم:

همانطور که در شکل زیر مشاهده می کنید ما باید برای پروژه خود یک نام و آدرس ذخیره انتخاب کنیم:

در مرحله بعدی ما باید فریم ورکی که قصد استفاده از آن را داریم انتخاب کنیم که انتخاب ما دات نت 5 خواهد بود. البته باید دقت داشته باشید که گزینه های دیگری نیز برای انتخاب وجود دارند ولی بهترین گزینه در حال حاضر برای کار کردن با API وب ASP.NET دات نت 5 است.

تنظیمات ما باید به شکل زیر باشد:

Target Framework: .NET 5.0

Authentication Type: None

فعال کردن گزینه Configure for Https

فعال کردن گزینه Enable docker

فعال کردن گزینه Enable OpenAPI support( این گزینه swagger را فعال می کند که ما در ادامه در این مقاله درباره آن صحبت خواهیم کرد)

در ادامه باید روی دکمه Create کلیک کنیم تا API وب ASP.NET برای ما ایجاد شود.

اکنون پروژه API وب ASP.NET ما ساخته شده است. ما باید پروژه را build و اجرا کنیم تا بتوانیم API وب را بررسی کنیم. خروجی اجرای این پروژه در ادامه نمایش داده شده است.

ما با موفقیت یک API وب ASP.NET ایجاد کردیم. از آن جایی که swagger نیز پیاده سازی شده است ما می توانیم API را به شکل زیر تست کنیم:

اجازه دهید تا کمی بیشتر درباره این پروژه توضیح دهیم. این پروژه با استفاده از یک swagger به عنوان portrayed پیاده سازی شده است.

ما به راحتی می توانیم با نصب کردن پکیج  Swashbuckle.AspNetCore در NuGet اقدام به پیاده سازی swagger کنیم.

نکاتی مهم درباره swagger

این یک OpenAPI است، در مستندات آن آمده است این API یک ویژگی زبانی شناختی برای توصیف REST API ها می باشد. پروژه Swagger برای پیش گامی OpenAPI در سال 2015 توزیع داده شد و از آن پس نیز با عنوان OpenAPI نامیده می شود.

Swagger مستندات API را به شما ارائه می دهد و زمانی که برای آماده کردن آن مورد نیاز است را به میزان زیادی کاهش می دهد.

کنترل کننده API وب ASP.NET

API وب ASP.NET در پوشه controller تعریف می شود و دارای یک ویژگی APIController می باشد که به شکل زیر است:

در کلاس controller ما API controller، Route و متدهای HTTP را مانند شکل زیر تعریف می کنیم:

به این ترتیب ما API controller را تعریف می کنیم. دقت داشته باشید که این روش ساده ترین روش برای انجام این کار است و شما می توانید از روش های پیشرفته تر نیز برای این کار استفاده کرده و از مزایای آن بهره مند شوید.

تست کردن API وب ASP.NET

از آنجایی که ما swagger پیاده سازی شده را در اختیار داریم به راحتی می توانیم API خود را تست کنیم. ما می توانیم این API وب را با استفاده از Post Man نیز تست کنیم ولی در این مقاله قصد داریم از swagger برای انجام این کار استفاده کنیم که به شکل زیر خواهد بود:

ما از اینترفیس بالا به عنوان یک swagger استفاده می کنیم که در این بخش برخی از مناطق کلیدی را برای شما برجسته کرده ایم:

- API Endpoint route/URL

- پارامترها: این گزینه به شما اجازه می دهد تا متناسب با نیاز خود پارامترهای مختلف را مورد استفاده قرار دهید.

- شماها: همه شماهای مورد نیاز

به این ترتیب شما می توانید کار خود را با API وب ASP.NET آغاز کنید و شروع به کار در این زمینه کنید.

برخی از مزایای API وب ASP.NET

API وب ASP.NET یک ابزار فوق العاده و کامل است که تمامی گزینه های مورد نیاز برای ساخت هر نوع از انواع API های وب را در اختیار شما قرار می دهد. ما می توانیم از همان فریم ورک دات نت یا دات نت core و همان الگوهای کدنویسی استفاده کنیم تا یک API وب را با گزینه های متعدد در اختیار شما قرار دهیم. ما می توانیم انواع مختلفی از دیزاین پترن ها و معماری های مختلف را با استفاده از API وب ASP.NET پیاده سازی کنیم.

استفاده از صفحات وب و سرویس ها در یک پروژه یکسان

یکی از مزایای مهم API وب ASP.NET این است که ما می توانیم همان طور که در یک پروژه اقدام به ساخت صفحات وب می کنیم API وب یا سرویس ها را پیاده سازی کنیم و از مزایای آن در زمینه استفاده از کلاس های مدل مختلف، اعتبارسنجی منطق ها و ... بهره مند شویم.

احراز هویت و اعتبارسنجی

ما می توانیم از قابلیت های احراز هویت و اعتبارسنجی داخلی دات نت در API وب ASP.NET استفاده کنیم تا امنیت آنها را ارتقا دهیم. قابلیت های احراز هویت و اعتبارسنجی داخلی دات نت براساس استاندارد صنعتی JSON Web Tokens که به اختصار JWT نامیده می شود طراحی و ساخته شده اند. این قابلیت فوق العاده می تواند انعطاف پذیری شما در کنترل کردن اعتبارسنجی و دسترسی به قوانین کنترلی در کدهای دات نت را افزایش دهد و در نتیجه برای شما بسیار مفید و کاربردی خواهد بود.

قابلیت Serialization ساده و راحت

API وب ASP.NET قابلیت serialization خودکار را در کلاس ها برای شما فراهم می کند تا بتوانید بدون هیچ تنظیمات خاصی آنها را در فرمت JSON در اختیار داشته باشید. این ویژگی در واقع یک تجربه وب مدرن را فراهم می کند و البته این قابلیت را نیز در اختیار شما قرار می دهد که بتوانید آن را برای endpoint های خود شخصی سازی کنید که این کار بر اساس نیازمندی های شما صورت می گیرد.

انعطاف پذیری در قابلیت Routing

ASP.NET گزینه های انعطاف پذیری را برای تعریف URL های route ها و endpoint ها با استفاده از ویژگی های داخل کد به شما ارائه می دهد. ما می توانیم نام های controller مبتنی بر route تعریف کنیم یا این که آنها را با استفاده از نام های مختلف شخصی سازی کنیم. ما می توانیم روت های مختلفی را به متدهای controller اختصاص دهیم.

قابلیت HTTPS در API وب ASP.NET

ASP.NET یک گزینه HTTPS را نیز به شما ارائه می دهد که می توانید در صورت نیاز از آن استفاده کنید. البته باید دقت داشته باشید که ASP.NET این گزینه را در زمان ساخت و ایجاد پروژه به شما ارائه می دهد و سایر تنظیمات مربوط به آن را به طور خودکار با ایجاد گواهی های تست خودکار برای محیط توسعه لوکال انجام می دهد. شاید برای شما جالب باشد که بدانید این یکی از مهم ترین بخش های API های وب و اپلیکیشن های مدرن امروزی به شمار می آید که قابلیت رمزگذاری end-to-end داده ها در سطح کلاینت و سرور را به شما ارائه می دهد. به همین علت است که این قابلیت می تواند به میزان زیادی روی امنیت و حریم خصوصی اپلیکیشن های امروزه تاثیرگذار باشد.

نتیجه گیری

ASP.NET قابلیت ها و مزایای بسیار زیادی را برای ساخت API های وب مدرن با استانداردهای صنعتی و قابل اجرا در پلتفرم های مختلف به شما ارائه می دهد که می توانید نهایت بهره را از آنها ببرید. در این مقاله ما با API و همین طور API های وب آشنا شدیم که امروزه به یک راه حل فوق العاده رایج برای توسعه بسیاری از اپلیکیشن ها و حل بسیاری از مشکلات در برنامه نویسی و توسعه اپلیکیشن تبدیل شده اند. ما همچنین در این مطلب درباره API وب ASP.NET صحبت کردیم و یک API وب ASP.NET را با استفاده از نسخه 5 دات نت برای شما ایجاد کردیم. در ادامه درباره نحوه پیاده سازی این API ها، تست و عیب یابی از آنها و همینطور بسیاری از ویژگی های مختلفی که به شما ارائه می دهند نیز صحبت کردیم. استفاده از این API های وب در ASP.NET می تواند مزایای بسیار زیادی را برای شما به همراه داشته باشد که در این مطلب به برخی از آنها اشاره کردیم. 

 

برنامه نویسان

نویسنده 3301 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید