آموزش استفاده از OpenAPI و Swagger برای تست API ها
آموزش استفاده از OpenAPI و Swagger برای تست API ها یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی تست کردن API های ASP.NET Core با استفاده از OpenAPI و Swagger است که با نام اصلی Using OpenAPISwagger for Testing and Code Generation in ASP.NET Core از شرکت Pluralsight منتشر شده است.
تفاوت بین Swagger و OpenAPI چیست؟
قبل از اینکه به برخی از دلایل اهمیت OpenAPI 3.0 برای API بپردازیم، مهم است که ابتدا برخی از سوالات مربوط به OpenAPI و معنای آن برای Swagger را روشن کنیم. سوالات زیادی در مورد تفاوت Swagger به OpenAPI وجود دارد. و همچنین سردرگمی های زیادی در مورد تفاوت بین OpenAPI و Swagger و زمان استفاده از نام هایشان کنار یکدیگر و اینکه چه رابطه ای بین OpenAPI و Swagger وجود دارد مطرح است. بیایید با توضیح Swagger در مقابل OpenAPI شروع کنیم. ساده ترین راه برای درک تفاوت این دو به شرح زیر است:

- OpenAPI: یک استاندارد یا Specification است.
- Swagger: یک ابزار برای پیاده سازی استاندارد OpenAPI است.
OpenAPI نام رسمی استاندارد (Specification) است. توسعه Specification توسط OpenAPI Initiative صورت می گیرد، که 30 سازمان از سازمان های مختلف دنیای فناوری - از جمله مایکروسافت، گوگل، IBM و CapitalOne را شامل میشود. Smartbear Software یک کمپانی است که توسعه ابزارهای Swagger را رهبری میکند. پس بنابر این Swagger ابزاری است که به طور گسترده برای پیاده سازی استاندارد OpenAPI یا OpenAPI specification استفاده می شود. مجموعه ابزار Swagger شامل ترکیبی از ابزارهای منبع باز یا open source است که می توانند در مراحل مختلف چرخه حیات API مورد استفاده قرار گیرند.
مجموعه ابزار های Swagger این ابزارها عبارتند از: ویرایشگر Swagger: ویرایشگر Swagger به شما امکان می دهد استاندارد OpenAPI را در YAML در مرورگر خود ویرایش کنید و اسناد را بصورت real time مشاهده کنید. Swagger UI: مجموعه ای از ابزار های HTML و جاوا اسکریپت و CSS است که به صورت پویا یا dynamically اسناد مناسبی را از یک API سازگار با OAS ایجاد می کند. Swagger Codegen: با توجه به OpenAPI Spec امکان تولید کتابخانه های سرویس گیرنده API (تولید SDK)، سرویس های خرد و اسناد را به طور خودکار دارد. Swagger Parser: یک کتابخانه Standalone است که برای pars کردن تعاریف OpenAPI از درون جاوا می باشد. Swagger Core: کتابخانه های مرتبط با جاوا برای ایجاد کردن و مصرف و کار کردن با تعاریف OpenAPI هستند. Swagger Inspector (رایگان): ابزار تست API است که به شما امکان می دهد API های خود را تایید کنید و تعاریف OpenAPI را از یک API موجود ایجاد کنید. SwaggerHub (رایگان و تجاری): طراحی و مستندسازی API که برای تیم هایی ساخته شده است که با OpenAPI کار می کنند.کاربرد OpenAPI در توسعه و مستندسازی API
OpenAPI مشخصاتی استاندارد برای توصیف ساختار و رفتار APIهای مبتنی بر HTTP ارائه میکند. این مشخصات میتواند اطلاعاتی درباره Endpointها، پارامترهای ورودی، ساختار پاسخها و روشهای احراز هویت مورد استفاده در API در اختیار ابزارهای مختلف قرار دهد. استفاده از یک توصیف استاندارد باعث میشود توسعهدهندگان و ابزارهای نرمافزاری بتوانند قرارداد API را به شکلی منظم بررسی کنند. در پروژههای ASP.NET Core، این قابلیت به هماهنگی بهتر میان پیادهسازی سرویس و برنامههایی که از آن استفاده میکنند کمک میکند.
یکی از مزایای OpenAPI این است که اطلاعات مربوط به API را میتوان علاوه بر مستندسازی، در فرایندهای توسعه و تست نیز به کار گرفت. برای مثال، ابزارهای سازگار میتوانند بر اساس مشخصات API، کدهای سمت کلاینت تولید کنند یا ساختار درخواستها و پاسخها را برای بررسی آماده سازند. البته کیفیت نتیجه به کاملبودن و صحت مشخصات API بستگی دارد. در این آموزش با نحوه استفاده از OpenAPI و Swagger در پروژههای ASP.NET Core آشنا میشوید و کاربردهای این ابزارها را فراتر از نمایش مستندات بررسی میکنید.
تولید کد سمت کلاینت با OpenAPI Specification
در پروژههایی که یک API در اختیار چند برنامه یا کلاینت مختلف قرار میگیرد، نوشتن دستی کدهای ارتباطی میتواند تکراری و مستعد خطا باشد. OpenAPI Specification اطلاعات ساختاری API را به شکلی استاندارد ارائه میکند و ابزارهای تولید کد میتوانند از این اطلاعات برای ایجاد بخشهایی از کد سمت کلاینت استفاده کنند. این روش به توسعهدهندگان کمک میکند قرارداد سرویس را در پیادهسازی کلاینت منعکس کنند و نیاز به تعریف دستی برخی مدلها و عملیات ارتباطی را کاهش دهند.

کد تولیدشده همچنان باید با نیازهای برنامه و تغییرات API هماهنگ باشد. اگر مشخصات OpenAPI ناقص یا قدیمی باشد، خروجی تولیدشده نیز ممکن است با رفتار واقعی سرویس تطابق نداشته باشد. به همین دلیل، بهروزرسانی مشخصات و بررسی سازگاری کدها اهمیت دارد. در این آموزش، تولید کد کلاینت با استفاده از OpenAPI Specification بررسی میشود تا با شیوه استفاده از قراردادهای استاندارد API در فرایند توسعه آشنا شوید و بتوانید ارتباط میان سرویس و کلاینت را ساختارمندتر مدیریت کنید.
تست API با استفاده از Swagger و OpenAPI
تست API بخش مهمی از بررسی صحت عملکرد سرویسهای تحت وب است. توسعهدهندگان باید بتوانند درخواستهای مختلف را ارسال کنند، پاسخها را مشاهده کنند و رفتار Endpointها را در شرایط متفاوت ارزیابی کنند. Swagger و ابزارهای مرتبط با OpenAPI امکاناتی برای نمایش عملیات API و تعامل با آن فراهم میکنند. این قابلیتها میتوانند بررسی اولیه سرویس را سادهتر کنند و به توسعهدهنده اجازه دهند بدون نوشتن یک کلاینت کامل، برخی درخواستها و پاسخها را آزمایش کند.
مشخصات OpenAPI همچنین میتواند مبنایی برای بررسی قرارداد میان سرویس و مصرفکنندگان آن باشد. با مقایسه رفتار واقعی API با اطلاعات تعریفشده در مشخصات، میتوان ناسازگاریهایی مانند تفاوت در پارامترها یا ساختار پاسخها را شناسایی کرد. البته ابزارهای مستندسازی و تعامل با API جایگزین تمام تستهای خودکار یا آزمونهای یکپارچگی نیستند. در این دوره با استفاده از OpenAPI برای تست API آشنا میشوید و یاد میگیرید چگونه از مشخصات استاندارد برای بررسی رفتار سرویس و ارزیابی قرارداد آن استفاده کنید.
سرفصل مطالب آموزش ویدئویی استفاده از OpenAPI و Swagger برای تست API ها
فصل اول: مقدمه این دوره آموزشی
- مقدمه این دوره آموزشی
فصل دوم: شروع به کار با OpenAPI/Swagger
- مقدمه
- پیش نیازهای دوره
- بررسی Framework ها و Tooling
- نسخه عملی: معرفی نسخه عملی برنامه
- استفاده کردن از Cases برای OpenAPI
- جمع بندی
فصل سوم: ایجاد کردن کد های سمت کلاینت با استفاده از OpenAPI Specification
- مقدمه
- یادگیری اینکه چرا تولید کد سمت کلاینت می تواند مفید باشد
- ابزارهای تولید کدهای سمت کلایت (قسمت 1)
- آموزش عملی: تولید کدهای سمت کلاینت با استفاده از Swagger CodeGen
- اب ابزارهای تولید کدهای سمت کلایت (قسمت 2)
- آموزش عملی: ایجاد کلاس های DTO با استفاده از NSwagStudio
- آموزش عملی: ایجاد یک کلاینت با NSwagStudio
- جمع بندی
فصل چهارم: استفاده کردن از OpenAPI برای تست یک API
- مقدمه
- اهمیت تست API
- معرفی Postman
- آموزش عملی: ایجاد Postman Request ها از OpenAPI Specification
- نوشتن و خودکارسازی تستهای API با Postman و Newman
- آموزش عملی: نوشتن اولین تست های API خود با Postman
- چه چیزی را بادی تست کنیم
- بررسی Testing API مربوط به Postman
- آموزش عملی: استفاده کردن از API Tests ها در چندین Request با استفادده از Postman
- آموزش عملی: اجرا کردن Test Collection ها با Postman
- آموزش عملی: اجرای خودکار تست با Newman
- استفاده از HTTP-REPL برای تعامل با یک API از Command Line
- آموزش عملی: نصب کردن HTTP-REPL
- آموزش عملی: استفاده از HTTP-REPL برای تعامل با یک API از Command Line
- جمع بندی


