برنامه نویسی و پیاده سازی وب سرویس یا API
API مخفف Application Programming Interface است، وب سرویس یک سیستم نرم افزاری است که برای پشتیبانی از تعامل نرم افزار به نرم افزار قابل کار بر روی یک شبکه طراحی شده است. در واقع با استفاده از API میتوانیم ارتباط بین دو نرم افزار از هر نوعی (وب - موبایل - ویندوز - مک و...) را برقرار کرد و با توجه به تعاریفی که در سطح امنیت توسط برنامه نویس انجام میشود داده ها بین هر دو در تبادل هستند.
طراحی و ساخت وب سرویس ها در انواع کاربردی های متفاوت در شرکت وبینه قابل اجرا می باشد استفاده از زبان برنامه نویسی PHP به منظور ایجاد وب سرویس یا استفاده از وب سرویس مطابق مستندات مورد استفاده بسیاری از سازمانها و شرکت هایی است که خدماتی را در بستر وب دریافت میکنند که با ساخت پنل دسترسی به وبسرویس محیطی بدون کدنویسی و قابل استفاده برای اپراتور را ایجاد خواهد کرد.
در این مقاله شما از نگاه فنی با با زبان هایی برنامه نویسی که برای ساخت API مورد استفاده قرار میگیرند آشنا میکنیم و همچنین انواع پروتکل هایی که برای ساخت وب سرویس وجود دارند را معرفی خواهیم کرد.
زبان برنامه نویسی ایجاد api چیست؟
زبان ساخت API به زبان ساده یک زبان برنامهنویسی رایانه ای است که برای ساخت رابط برنامهنویسی کاربردی (API) استفاده میشود. این زبان میتواند هر زبان برنامهنویسی باشد که برای تعریف و پیادهسازی API مناسب باشد. به عنوان مثال، برای ساخت API در زبانهای مختلفی مانند Java، Python، Ruby، PHP و غیره میتوان استفاده کرد البته اینکه کدام زبان را انتخاب کنید بستگی به تیم توسعه دهنده و نرم افزاری شما دارد که با چه زبانی پروژه های خود را اجرا میکنند . به طور مثال برای اینکه یک فروشگاه اینترنتی سفارشات خود را به نرم افزار مالی و حسابداری مانند سپیدار یا همکاران سیستم ارسال میکند مهم تریم بخش این API مقصد است و مبدا که فروشگاه اینترنتی است صرفا داده ها را به آدرس end point نرم افزار مالی ارسال میکند. اما اگر بخواهیم دو طرفه به قضیه نگاه کنیم این سرویس میتواند از طریق نرم افزار مالی هم به عنوان مبدا اجرا شود در صورتی که کارشناس نرم افزار مالی که در ویندوز اجرا میشود میتواند محصولات جدید را ایجاد کند و فروشگاه محصولاتی را که ایجاد شده است را دریافت کند و آنها را نیز ایجاد کند. در این مثال زبان نرم افزارهای ویندوزی C# است و زبان برنامه نویسی ساخت API فروشگاه اینترنتی هم PHP است. معمولا در ایران به دلیل محبوبیت بالای زبان PHP در بین برنامه نویسان پروژه های ساخت وب سرویس با این زبان قابل اجرا هستند در کنار php هم سرویس های .NET هم محبوبیت بالایی دارند.
بستر تبادل داده در وبسرویس ها
وبسرویس معمولا بر روی پروتوکل http و یا Https اجرا می شوند و با داده ها را با فرمت های JSON , XML هدایت میکنند. معمولا وبسرویس ها دارای مستنداتی می باشند تا برنامه نویسان و کدنویسان بتوانند جهت سهولت در کدنویسی خود، از آن مستندات و راهنماهای لازم استفاده نمایند. و عملا بدون وجود مستندات وبسرویس ها ناکارآمد میشوند. به دلیل حفظ امنیت وب سرویس ها حتما از روش https استفاده گردد.
انواع استانداردهای وب سرویس
وبسرویس ها به روش های متفاوتی مورد استفاده قرار میگیرند که انعطاف پذیرین آنها REST API است که مورد توجه بسیاری از پروژه های نرم افزاری است. البته تعدد بالای استانداردهای وبسرویس بسیار بالاست و ما صرفا جهت آشنایی با این موضوع چند مورد پر کاربرد را معرفی کرده ایم.
REST API
API REST، یا Representational State Transfer API، یک سبک معماری برای یک رابط برنامه کاربردی (API) است که از درخواستهای HTTP برای دسترسی و استفاده از دادهها استفاده میکند. API های RESTful به توسعه دهندگان اجازه می دهند با استفاده از مجموعه ای از عملیات از پیش تعریف شده مانند GET، PUT، POST و DELETE به منابع وب دسترسی پیدا کرده و آنها را دستکاری کنند.
REST API چگونه کار میکند ؟
REST API با ارسال یک درخواست به سرور آغاز می کند که حاوی URL مقصد و اقدام مورد نظر برای انجام روی آن مقصد است. سپس سرور پاسخی را به ارسال کننده ارسال می کند که حاوی داده های درخواستی در قالبی مانند JSON، XML یا HTML است. این رویه به صورت تکراری انجام میشود و مبدا و مقصد میتوانند بر اساس مستنداتی که api دارند با یکدیگر تبادل داده کنند.
SOAP یا Simple Object Access Protocol
SOAP مخفف عبارت Simple Object Access Protocol است که یک پروتکل مبتنی بر XML برای دسترسی به خدمات وب از طریق HTTP است. SOAP یک پروتکل یا تعریفی است از نحوه صحبت سرویس های وب با یکدیگر یا صحبت با برنامه های مشتری که آنها را فراخوانی می کنند. این زبان به عنوان یک زبان میانی توسعه داده شد تا برنامه های کاربردی ساخته شده بر روی زبان های برنامه نویسی مختلف بتوانند به راحتی با یکدیگر صحبت کنند و از تلاش های شدید توسعه جلوگیری کنند.
SOAP در مقابل REST
SOAP و REST دو رویکرد متفاوت برای طراحی API هستند. هر دو در تلاشی برای حل مشکل اشتراک گذاری داده ها بین فناوری های مختلف که فرمت های داده متفاوتی دارند، پدیدار شدند. SOAP بسیار ساختار یافته است و از فرمت داده های XML استفاده می کند، در حالی که REST انعطاف پذیرتر است و به برنامه ها اجازه می دهد تا داده ها را در قالب های مختلف مبادله کنند. SOAP مجموعه ای سفت و سخت از الگوهای پیام رسانی نسبت به REST است که سبک تر و انعطاف پذیرتر است.
SOAP چگونه کار می کند
SOAP روی پروتکل HTTP کار میکند، که پروتکل پیشفرض مورد استفاده همه برنامههای کاربردی وب است. یک سرویس گیرنده SOAP یک سند XML را به یک سرور SOAP می فرستد، که با استفاده از HTTP یا HTTPS به یک کنترل کننده درخواست SOAP که به عنوان یک servlet در یک وب سرور اجرا می شود، پست می شود. درخواست های SOAP به راحتی ایجاد می شوند و می توانند با هر زبان برنامه نویسی استفاده شوند.
به طور کلی، SOAP یک پروتکل برای دسترسی به خدمات وب از طریق HTTP است که از فرمت داده XML استفاده می کند و برای برقراری تماس های رویه از راه دور در سراسر مرزهای ماشین و شبکه استفاده می شود.
UDDI یا Universal Description – Discovery and Integration
UDDI مخفف Universal Description, Discovery, and Integration است. این یک استاندارد مبتنی بر XML برای توصیف، انتشار و یافتن خدمات وب است. UDDI مشخصه ای برای یک رجیستری توزیع شده از خدمات وب است که به کسب و کارها امکان می دهد تا به سرعت، به راحتی و به صورت پویا تراکنش های خود را پیدا کرده و با یکدیگر انجام دهند.
UDDI چگونه کار می کند
UDDI یک فضای معماری باز جهانی، مستقل از پلتفرم ایجاد می کند که به نفع مشاغل است. یک رجیستری پرجمعیت UDDI حاوی اطلاعات فهرستبندی شده درباره کسبوکارها، خدماتی که ارائه میکنند، و استانداردهای ارتباطی و رابطهایی است که برای انجام معاملات استفاده میکنند. صاحبان سرویسهای وب آنها را در رجیستری UDDI منتشر میکنند، که اشارهگرهایی را به شرح خدمات وب و سرویس نگهداری میکند. پس از انتشار، رجیستری UDDI به مشتریان اجازه می دهد تا سرویس مورد نظر را جستجو کرده و جزئیات آن را بازیابی کنند.
مقایسه UDDI و SOAP
UDDI یک پروتکل مبتنی بر SOAP است که نحوه ارتباط کلاینت ها با رجیستری های UDDI را تعریف می کند. این مجموعه خاصی از ثبت جهانی تکرار شده است. UDDI یک سرویس جستجوی مبتنی بر XML برای مکان یابی سرویس های وب در یک توپولوژی اینترنتی است. این روشی مستقل از پلتفرم برای توصیف و کشف خدمات وب و ارائه دهندگان خدمات وب ارائه می کند.
به طور خلاصه، UDDI یک پروتکل زبان نشانه گذاری (XML) مستقل از پلتفرم و توسعه پذیر است که شامل خدمات رجیستری برای توصیف، انتشار و یافتن سرویس های وب است. کسبوکارها را قادر میسازد تا فهرستهای خدمات را منتشر کنند و یکدیگر را کشف کنند و نحوه تعامل سرویسها یا برنامههای نرمافزاری را با یکدیگر تعریف کنند.
WSDL - Web Service Description Language
WSDL مخفف Web Service Description Language است. این یک زبان مبتنی بر XML است که برای توصیف خدمات وب استفاده می شود
یک فایل WSDL عملیات در یک وب سرویس، پیام های استفاده شده توسط هر عملیات، و ظاهر پیام ها را تعریف می کند. این یک توصیف قابل خواندن توسط ماشین از نحوه فراخوانی سرویس، چه پارامترهایی که انتظار دارد و چه ساختارهای داده ای را برمی گرداند ارائه می دهد.
WSDL یک زبان مبتنی بر XML است که برای توصیف خدمات وب استفاده می شود. این عملیات در یک وب سرویس، پیام های استفاده شده توسط هر عملیات، و ظاهر پیام ها را تعریف می کند. یک فایل WSDL توضیحی قابل خواندن توسط ماشین از نحوه فراخوانی سرویس، پارامترهای مورد انتظار و ساختارهای داده ای که برمی گرداند ارائه می دهد.