REST مخفف ( Rrepresentational State Transfer ) یک سبک معماری است که مجموعه ای از محدودیت ها را برای ایجاد سرویس های وب تعریف می کند. REST API راهی برای دسترسی به خدمات وب به روشی ساده و قابل انعطاف بدون انجام هیچ گونه پردازشی است.
فناوری REST به طور کلی به فناوری (SOAP) ترجیح داده میشود زیرا REST از پهنای باند کمتر، ساده و انعطافپذیری استفاده میکند و آن را برای استفاده از اینترنت مناسبتر میکند. برای دریافت یا ارسال برخی اطلاعات از یک سرویس وب استفاده می شود. تمام ارتباطات انجام شده از طریق REST API فقط از درخواست HTTP استفاده می کند.
عملکرد: یک درخواست از کلاینت به سرور در قالب یک URL وب به عنوان درخواست HTTP GET یا POST یا PUT یا DELETE ارسال می شود. پس از آن، یک پاسخ از سرور به شکل یک منبع برمی گردد که می تواند هر چیزی مانند HTML، XML، Image یا JSON باشد. اما اکنون JSON محبوب ترین فرمتی است که در وب سرویس ها استفاده می شود.
در HTTP پنج روش وجود دارد که معمولاً در معماری مبتنی بر REST استفاده می شود، یعنی POST، GET، PUT، PATCH و DELETE. اینها به ترتیب مربوط به ایجاد، خواندن، به روز رسانی، و حذف عملیات هستند. روش های دیگری مانند OPTIONS و HEAD وجود دارند که کمتر مورد استفاده قرار می گیرند.
- GET: روش HTTP GET برای خواندن (یا بازیابی) نمایشی از یک منبع استفاده می شود. در مسیر امن، GET یک نمایش در XML یا JSON و یک کد پاسخ HTTP 200 (OK) برمیگرداند. در یک مورد خطا، اغلب یک 404 (NOT FOUND) یا 400 (BAD REQUEST) برمی گرداند.
- POST: فعل POST اغلب برای ایجاد منابع جدید استفاده می شود. به طور خاص، از آن برای ایجاد منابع فرعی استفاده می شود. یعنی تابع منبع دیگری (مثلاً والد). پس از ایجاد موفقیت آمیز، وضعیت HTTP 201 را برگردانید، و یک سرصفحه موقعیت مکانی را با پیوندی به منبع تازه ایجاد شده با وضعیت HTTP 201 برگردانید.
- PUT: برای به روز رسانی قابلیت ها استفاده می شود. با این حال، در مواردی که شناسه منبع توسط مشتری به جای سرور انتخاب شده باشد، می توان از PUT برای ایجاد یک منبع استفاده کرد. به عبارت دیگر، اگر PUT به یک URI باشد که حاوی مقدار یک شناسه منبع غیر موجود است. در بهروزرسانی موفقیتآمیز، 200 (یا 204 در صورت عدم بازگشت محتوای موجود در بدنه) را از یک PUT برگردانید. اگر از PUT برای ایجاد استفاده میکنید، پس از ایجاد موفقیتآمیز، وضعیت HTTP 201 را برگردانید. PUT عملیات ایمن نیست اما بی قدرت است.
- PATCH: برای اصلاح قابلیت ها استفاده می شود. درخواست PATCH فقط باید شامل تغییرات در منبع باشد، نه منبع کامل. این شبیه PUT است، اما بدنه شامل مجموعهای از دستورالعملها است که توضیح میدهد چگونه منبعی که در حال حاضر روی سرور قرار دارد باید برای تولید نسخه جدید اصلاح شود. این بدان معنی است که بدنه PATCH نباید فقط بخشی اصلاح شده از منبع باشد، بلکه باید به نوعی زبان وصله مانند JSON Patch یا XML Patch باشد. PATCH نه ایمن است و نه ناتوان.
- DELETE: برای حذف یک منبع شناسایی شده توسط یک URI استفاده می شود. در صورت حذف موفقیت آمیز، وضعیت HTTP 200 (OK) را به همراه بدنه پاسخ برگردانید.
Idempotence: روش HTTP idempotent یک روش HTTP است که می تواند چندین بار بدون نتایج متفاوت فراخوانی شود. فرقی نمی کند که متد فقط یک بار فراخوانی شود یا ده بار. نتیجه باید یکسان باشد. باز هم، این فقط در مورد نتیجه اعمال می شود، نه خود منبع.
درخواست و پاسخ
اکنون خواهیم دید که درخواست و پاسخ برای روش های مختلف HTTP چگونه کار می کنند . بیایید فرض کنیم یک API برای همه داده های دانش آموزان داریم. (api.backendbaz.ir/api/students)
- GET: درخواست برای همه دانش آموزان.
درخواست |
GET:/api/students |
- POST: درخواست ارسال/ایجاد/درج داده جدید
درخواست |
POST:/api/students
|
- PUT یا PATCH: درخواست به روز رسانی داده ها در id=1
درخواست |
PUT یا PATCH:/api/students/1
|
- DELETE: درخواست حذف داده های id=1
درخواست |
DELETE:/api/students/1 |
خدمات وب RESTful بسیار محبوب هستند زیرا وزن سبک، مقیاس پذیر و قابل نگهداری هستند و معمولاً برای ایجاد API برای برنامه های مبتنی بر وب استفاده می شوند.
دیدگاهها