rest api چیست؟آشنایی کامل با restful api در لاراول

rest api چیست؟آشنایی کامل با restful api در لاراول
آکادمی آی تی
آکادمی آی تی
dots

rest api چیست؟آشنایی کامل با restful api در لاراول

زمان مورد نیاز برای مطالعه 5 دقیقه

rest api در لاراول و نحوه عملکرد آن به همراه پیش نیاز های آموزش restful api در laravel و متد های آن همه در این مقاله آموزش داده شده است.

دپارتمان ‌ها: آموزش برنامه نویسی
1399/02/23
9,609 بازدید

هر برنامه نویسی حداقل یک بار کلمه ی restful api را شنیده است، اما rest api چیست و چه مزایایی برای برنامه های تحت وب دارد؟ ما در این مقاله درباره سیستم های توزیع شده، عملکرد api ها و همچنین متدهای آن صحبت خواهیم کرد.

 

Rest api چیست؟

Rest api مخفف کلمات representational state transfer – application programming interface میباشد. api متد هایی برای ارتباط با کتابخانه ها و اپلیکیشن ها را دارد. Rest روشی برای ارسال و دریافت داده ها با پروتکل http از طریق شبکه است. هم چنین پروتکلی به نام  simple object access protocol که soap نام گرفته است، کار ارسال و دریافت را با فرمت xml انجام می دهد.

رست ای پی آی ها از این جهت به وجود آمده اند که از پروتکل هایی که در بستر وب وجود دارند استفاده کنند. اگر بخواهیم برای سیستمی وب سرویس ایجاد کنیم، به عنوان مثال سیستمی که با فریمورک laravel توسعه داده شده است. باید از restful api ها استفاده بکنیم. برای سیستم های توزیع شده، rest یک نوع معماری نرم افزار بشمار می رود.

 

سیستم های توزیع شده چه نوع سیستم هایی هستند؟

Distributed system یا همان سیستم توزیعی، سیستمی است که متشکل از تعدادی سرور، کامپیوتر و ... که برای یک هدف ولی مستقل از هم کار می کنند. یکی از معروف ترین سیستم توزیعی که همه روزه با آن سرو کار داریم سیستم web میباشد. از نظر کاربر سیستم های توزیعی  یک سیستم واحد است.

 

پیش نیاز های آموزش restful api در لاراول 

اولین پیش نیاز، یادگیری زبان php است چرا که باید با syntax و نحوه کد نویسی در آن آشنا باشید. در واقع باید تسلط کافی به این زبان را داشته باشید. بعد از این که زبان php را یاد گرفتید شما می توانید شروع به یادگیری فریم ورک laravel کنید. لاراول یکی از محبوب ترین فریمورک های است که با زبان php  توسعه داده شده و بسیاری از سیستم های تحت وب با استفاده از این فریمورک نوشته شده اند.

 

آموزش مرتبط: دوره پروژه محور آموزش لاراول

 

 Rest api ها چه نوع عملکردی دارند؟

معماری rest api بر پایه client/server عمل می کند. هنگامی که client درخواستی به server ارسال می کند، سرور پاسخ خود را در قالب پکت به کلاینت ارسال می کند. این کار تا زمانی که کلاینت به هدف خود نرسیده باشد ادامه می یابد. تمامی Request ها و Response ها با استفاده از این api ها بین کلاینت و سرور رد و بدل می شوند. 

 

متد های api چه عملیاتی را انجام می دهند؟

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

  • GET
  • POST
  •  PUT
  • DELET

عملیات استاندارد CRUD را این متد ها انجام می دهند. هر یک از حروف CRUD نشانگر عملیات چهار گانه که در پایگاه داده ها انجام می شوند است. حرف C برای create، حرف R برای read، حرف U برای update و حرف D برای delete میباشد. متد get برای عمل خواندن اطلاعات یا همان فراخوانی اطلاعات، متد post برای ایجاد و ارسال اطلاعات، متد put برای ویرایش و یا جابه جایی داده ها و همچنین متد delete برای حذف در api ها میباشد.

 

http چیست؟

 hyper text transfer protocol /httpپروتکلی است در بستر وب که به ارتباط بین سرور و کلاینت می پردازد. این ارتباط بین کلاینت و سرور از طریق ارسال درخواست های http و دریافت پاسخ های آن است. مراحل ایجاد ارتباط بین سرور و کلاینت به صورت زیر است.

  1. ابتدا کلاینت از طریق یک سرویس گیرنده درخواست http به وب ارسال می کند. 
  2. وب سرور درخواست را دریافت می کند. 
  3. سرور عملیات لازم برای درخواستی را که از کلاینت گرفته است را پردازش کرده و آن را اجرا می کند. 
  4. سرور در مقابل درخواست کلاینت از طریق http، پاسخ مربوطه را به سرویس گیرنده ارسال می کند.
  5. کلاینت پاسخ را از سرور دریافت می کند. 

 

http verbs

http verb که با http methods نیز شناخته می شود. مفهوم آن زمانی روشن می شود که درخواستی از جنس http داشته باشیم در واقع این نوع درخواست ها حاوی متدهایی هستند که همراه با هدر به سرور ارسال می شود. این متدها یکسری دستوراتی برای تعامل با داده های دیتابیس درسرور ارسال می کنند. چهار متدی که همراه با http ارسال می شوند. عبارت اند از:

  1. GET 
  2. POST
  3. PUT
  4. DELETE

 

Restful api چگونه کار می کند؟

اگر بخواهیم طریقه ی کار کردن restful API را ساده تر توضیح بدهیم به این صورت است که ابتدا یک تراکنش را به ماژول های کوچکتری که هر کدام با یکدیگر و در ارتباط با هم لینک داده شده باشند تقسیم می کند. به این خاطر تراکنش شکسته می شود که قابلیت انعطاف بیشتری داشته باشد. 

Restful api از روش های http که توسط پروتکل RFC 2616 تعریف شده اند استفاده می کند. این روش ها همان متدهایی هستند که پیشتر توضیح داده شده اند. ازGET برای گرفتن اطلاعات، از PUT برای بروزرسانی و ویرایش، از POST  برای ایجاد و از DELETE برای حذف آن استفاده می شود. 

 

محدودیت های طراحی و معماری restful api 

موارد زیر شش محدودیتی که برای معماری restful api درنظر گرفته شده است: 

  1. معماری کلاینت – سرور
  2. بی حالت بودن /stateless 
  3. قابلیت ذخیره
  4. سیستم لایه ای
  5. کد در صورت تقاضا
  6. رابط  کاربری یکسان : این مورد نیز محدودیت های طراحی دارد که به صورت زیر است. 
  • شناسایی منابع در درخواست ها
  • دستکاری منابع 
  • پیام های خود توصیف
  • ابر رسانا به عنوان موتور وضعیت برنامه 

 

تفاوت rest و restful api

REST / representational state transfer یک سبک معماری نرم افزاری برای پیاده سازی API که مبتنی بر  پروتکل HTTP است. در واقع می توان گفت که REST می تواند یک وب سرویس را به روش خاصی در اختیار برنامه نویسان قرار بدهد. در حالی که restful api سرویسی است که معماری REST را پیاده سازی کرده است. 

 

مقایسه rest و soap 

برای پیاده سازی وب سرویس REST و SOAP هر کدام روش های متفاوتی دارند. که در زیر به طور کامل مقایسه شده اند. 

  • REST یک نوع سبک معماری است. در حالی که SOAP یک پروتکل استاندارد ارتباطی برای دسترسی به وب سرویس که مبتنی بر XML است. 
  • SOAP به دلیل اینکه یک پروتکل است نمی تواند از  REST استفاده کند. اما REST می تواند از  هر پروتکلی اعم از HTTP، SOAP و ... استفاده کند. 
  • REST از فرمت های زیادی مانند XML، JSON، HTML و ... را پشتیبانی می کند. در حالی که SOAP  فقط از XML می تواند پشتیبانی کند. 
  • اگر برای استفاده از هر کدام بنا بر ترجیح باشد بیشتر REST ترجیح داده می شود. 
  • SOAP نسبت به REST از پهنای باند و منابع بیشتری استفاده می کند. 
  • SOAP استاندارد های بیشتری را نسبت به REST دنبال می کند. 

 

تاریخچه restful api ها

در سال 1999 قبل از rest برنامه نویسان از soap  برای یکپارچه گی با api ها استفاده می کردند. برای برقراری این ارتباط ابتدا یک داکیومنت با فرمت  xml به همراه RPC که به  معنای تماس فرایند از راه دور است می نوشتند. سپس مقصد را که مشخص می کردند SOAP به همان مقصد POST می شد.

برقراری تماس با همان RPC که گفته شد ممکن میشد. سپس در سال 2000 ، Roy fielding و یک گروه برنامعه نویسی تصمیم گرفتند تا یک استانداردی ایجاد کنند که همه ی سرور ها بتوانند باهم دیگر ارتباط برقرار کنند. که در نهایت rest ایجاد شد تا برنامه نویسان بتوانند نرم افزار ها را یکپارچه کنند.

بعد از آن در همان سال api را کمپانی salesforce به عنوان یک قسمت از پکیج internet as a service / سرویس اینترنتی به فروش رساند. خروجی این api  با فرمت xml بود که تعداد کمی از برنامه نویسان توانستند از آن استفاده کنند. EBAY هم یک rest api ایجاد کرد.

در راستای ایجاد rest api  اولین api توسط شرکت آمازون در سال 2002 روانه بازار شد. در سال 2004 نیز سرویس اینترنتی flicker اولین restful api خود را جهت قادر ساختن بلاگرها برای استفاده از عکس ها در شبکه های اجتماعی راه اندازی کرد.

 

دسترسی به منابع API 

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

 

خودتان API بسازید 

برای ساخت api  به زبان برنامه نویسی دلخواهتان ابتدا باید به آن زبان تسلط داشته باشید. و با مفاهیم api، restful  و rest آشنا باشید. برای مثال اگر می خواهید با زبان php یک api بسازید باید نرم افزار های لازم که عبارت اند از wamp (lamp / xamp) و یک تکست ادیتور مانند vs code داشته باشید. بقیه مراحل ساخت api در زیر توضیح داده شده اند.

  • ایجاد پایگاه داده و جداول لازم /mysql 
  • ایجاد فایل اتصال به دیتابیس با php
  • ایجاد فایل rest api با php

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