RESTful api چیست – یک بار برای همیشه

در واقع رست فول ای پی آی ساختاری هست که زبان های برنامه نویسی مختلف می تونند با یکدیگر در بستر وب و بر اساس یک ساختار ارتباط برقرار کنند و داده های خودشونو برای یک دیگر به اشتراک بگذارند. همین! (واقعا کل سایتا می خواستن همینو بگن)
  • تعداد نظرات: 4
  • دسته بندی ها: آموزش php
  • زمان مطالعه: 7 دقیقه

نکته: در صورتی که نیازمند قرار گرفتن آموزش خاص و یا مطلبی به صورت رایگان در حوزه های حسابداری و کامپیوتر هستید آن را در قسمت نظرات همین صفحه وارد کنید.

سلام دوستان. قبل از هرچیزی من یه مقدمه بگم. یادم میاد زمانی که خودم برای اولین بار می خواستم rest api رو یاد بگیرم داخل اینترنت برای این که چی هست یه سرچ زدم و واقعا دقیقا نفهیدم کارش چیه و به چه درد می خوره اما با این حال باز هم نشستم و یادگرفتم.

اینو می دونم که خیلی از سایت ها یکسری توضیحات خیلی تخصصی یا خیلی گیج کننده راجب اینکه restful api چیست ارائه دادند اما من به شما قول می دم در این مقاله ساده ترین تعریفی که میشه از رست ای پی آی کرد رو ارائه بدم و بگم دقیقا این چیه. همچنین یه فیلم آموزش ساخت api رو آماده کردم که می تونید در زیر همین پست ببینید. قسمت های جدید اضافه می شوند.

RESTful api چیست

در واقع رست فول ای پی آی ساختاری هست که زبان های برنامه نویسی مختلف می تونند با یکدیگر در بستر وب و بر اساس یک ساختار ارتباط برقرار کنند و داده های خودشونو برای یک دیگر به اشتراک بگذارند. همین! (واقعا کل سایتا می خواستن همینو بگن)

کلیت موضوع همینه اما اگه می خواهید کمی بیشتر با rest api آشنا بشید می تونید ادامه مطلب رو بخونید.

RESTful api چیست
نمونه کاربرد های یک rest api

api مخفف Application Programming Interface هست و رابط برنامه نویسی کاربردی معنی خوبی برای اون میشه. معمولا ما می تونیم به روش های مختلف اقدام به ساخت api های مختلف کنیم. به طور مثال یک api با php بسازیم که نرخ انواع عرض دیجیتال رو به ما میده.

خب قدم اول اینکه قیمت عرض های دیجیتال رو داشته باشیم.

حالا اگر بخواهیم اون رو به صورت api قرار بدیم باید اطلاعاتی که داریم رو در قالب یک ساختار ارائه بدهیم که XML و Json دو تا از این ساختار ها می باشند.

زمانی که ما اطلاعاتمون رو به صورت Json و یا XML محور به عنوان خروجی یک برنامه تعریف می کنیم در واقع یک API ساختیم که هر زبان برنامه نویسی دیگه ای می تونه این اطلاعات مارو از سایت یا صفحه وب ما بگیره و برای خودش استفاده کنه.

مثلا من یک api با php می سازم که قیمت روزانه خودرو رو ارائه میده. خود برنامه php من اطالات رو از دیتابیس می خونه و بعد خروجی اون رو به صورت کد json بر میگردونه.

حالا یک جای دیگه مثالا با زبان جاوا داخل یک اپلیکیشن اندروید می تونم بگم که بیا و برو اطالعاتی که این صفحه وب (صفحه وب برنامه php من) بخون و از حالت json خارجش کن و سپس داخل اپلیکیشن اندروید نشونش بده.

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

شما می تونید از این لینک یک نمونه از api تستی رو مشاهده کنید. با هر زبان برنامه نویسی می تونید وارد این لینک بشید و اطلاعتش رو از حال Json خارج کنید و سپس کارهایی که می خواهید رو باهاش انجام بدهید.

این رو هم بگم که قدیم ما از XML برای فراهم کردن api استفاده می کردیم اما الان همه از Json استفاده می کنند.

اینم یه نمونه از عکس و تصویر نحوه کارکرد یک API یا وب سرویس

نحوه کارکرد یک ای پی آی
نحوه مباده اطلاعا بین سرویس دهنده و سرویس گیرنده

اما تفاوت Rest و RESTful چیست

همانطور که در مثال قبل خواندید ما یک api در بستر Rest ساختیم اما RESTful api دقیقا قوانین طراحی و ساخت API ها هستند به گونه ای گه کمترین نیاز بین سرویس دهنده (برنامه PHP ما) و سرویس گیرنده (همون برنامه JAVA) باشه.

اتصالات بین سرویس دهنده و سرویس گیرنده یک api در بستر پروتکل های HTTP (همون وب خودمون) انجام میشه.

خب چند تا اصطلاح این وسط مطرح هست که به ما که سرویس دهنده هستیم و یک api رو میسازیم امکان مدیریت کسانی که سرویس گیرنده هستند رو میده به طور مثال api ما یک api محرمانه و پولی هست و نمی خواهیم که هرکسی بهش وصل بشه و اطلاعاتش رو در اختیار داشته باشه.

در این صورت ما با مفاهیم زیر رو به رو می شویم.

HTTP methods = اشاره داره به نوع درخواست. مثالا برای دریافت اطلاعات ما همیشه باید از متد GET استفاده کنیم. اگر هدف ارسال اطلاعات باشه به api ما باید متد حتما POST باشه و اگر هم هدف ویرایش اطلاعات باشه باید متد ارسالی ما به api باید PUT باشه و اگر همه که هدف حذف یک مقدار خاص از ای پی آی ما بود باید متد DELETE باشه.

HTTP headers = گاهی اوقات ما api ای رو میسازیم که برای مشخص کردن بعضی چیز ها باید از سوی سرویس گیرنده یک header با یک مقدار مشخص دریافت کنه.

Status Codes = این هم کد های ارسالی هستند که گاها از طرف api برای سرویس گیرنده یا client در پاسخ به درخواستی که فرستاده ارسال میشه. معمولا ما خیلی از این ارور هارو دیدیم و میشناسیم.

به طور مثال در پاسخ به درخواستی که وجود نداره باید status code 404 رو به عنوان خروجی بهش بدیم.

یا برای در پاسخ به درخواستی که دسترسی دیدن اون رو نداره باید کد ۴۰۳ رو بهش برگردونیم و ….

اینو بگم که اگر شما با زبان برنامه نویسی که باهاش کار می کنید آشنایی مناسبی داشته باشید مفاهیمی که از این زبان های برنامه نویسی گفتم رو متوجه خواهید شد.

یک نمونه از سیستم و عملیات CRUD یا همون عملیات های چهارگانه ذخیره ، دریافت و ویرایش و حذف اطلاعات رو در غالب url های یک api می تونید مشاهده کنید.

example.com/api/v1/users Method= GET –get all users

example.com/api/v1/users/{id} Method= GET –get user with id

example.com/api/v1/users Method= POST –insert a user

example.com/api/v1/users/{id} Method= PUT –Update a user info

example.com/api/v1/users/{id} Method= DELETE –delete user

چند نمونه از api های مختلف

بهترین مثال هایی که راجب کاربرد api می تونم برای شما بزنم سایت هایی هستند که اپلیکیشن اندرویدی دارند مثل دیجیکالا و آپارات و فیلیمو و سایت های دیگه.

شما داخل اپلیکیشن های هر کدوم که بروید می بینید که اطلاعات سایت هارو منتها با یک ظاهر دیگه نمایش می دهند.

خب شیوه کار به این صورت هست که هر کدوم از این شرکت ها یه سایت دارند. بعدش اومدند یک api برای توضیع محتواشون ساختند و هنگام ساخت برنامه اندرویدی اومدند گفتن که این برنامه بیاداطلاعاتش رو از اونجا بخونه.

نکات مهم در ساخت restful api

همیشه از نسخه بندی در ساختار url های api خود استفاده کنید. برای اینکه اگر یه زمانی برنامه رو بروز کردید کسانی که از نسخه های قبلی api شما استفاده می کنند دچار مشکل نشوند.

سعی کنید هنگام ساخت api تا حد ممکن کاری کنید که همه چیز در همون در خواست اول تموم بشه. یعنی اگر هدف دریافت لیست کاربران از یک سایت فروشگاهی هست. در api و کد json که تحویل می دهید تمامی اطلاعات کاربران همراه با لیست خرید ها و تراکنش ها و خلاصه هر چیزی که به کاربران محدود می شه رو ارائه بدهید تا نیازی به درخواست مجدد یک سرویس گیرنده نباشه و تعامل در کم ترین درخواست ممکن انجام بشه.

معمولا ما با ابزار و نرم افزار به نام post man می تونیم اقدام به اعتبار سنجی api هایی که ساختیم کنیم.

آموزش ساخت api با php

خب دوستان من سعی می کنم که یک فیلم آموزش ساخت یک api هرچند ساده اما کاربردی رو با استفاده از php و هم node js. درواقع یکی با php و یکی هم با nodejs برای شما ارائه بدم. قسمت های جدید همین زیر منتشر میشه. منتظر باشید.