Movatterモバイル変換


[0]ホーム

URL:


לדלג לתוכן
ויקיפדיההאנציקלופדיה החופשית
חיפוש

REST

מתוך ויקיפדיה, האנציקלופדיה החופשית

REST (ראשי תיבות:RepresentationalStateTransfer) הוא סגנוןתוכנה ארכיטקטוני למימוששירותי רשת (API). הרעיון העיקרי הוא הגדרתמשאב מערכת שמצבו עובר שינוי כתוצאה מהאינטראקציה בין מספק השירות והצרכן. המושג הוצג לראשונה על ידירוי פילדינג בשנת2000 במסגרת עבודת הדוקטורט שלו. פילדינג הוא אחד המחברים העיקריים של פרוטוקולHTTP, שתחתיו מתבצעים מימושי REST ברוב המקרים.

התפיסה

[עריכת קוד מקור |עריכה]

התפיסה הארכיטקטונית ב-REST היא תפיסתשרת-לקוח. תפיסה זו מחייבת קיום לקוח ושרת. לקוחות יוזמים פניות המכילות בקשות לשרתים. השרת מעבד את הפנייה, ומחזיר תגובות מתאימות. הייחוד של REST הוא בכך שהתוכן המועבר מהלקוח לשרת הוא ייצוג של משאב. המונח משאב בהקשר זה הוא מונח כללי ורחב. כל מושג קוהרנטי יכול להיות משאב.

בכל מצב נתון הלקוח יכול להיות בתהליך של שינוי מצב או במצב מנוחה (באנגלית rest). במצב של מנוחה הלקוח יכול להיות באינטראקציה עם המשתמש, אבל אינו תופס משאבים בשרת. הלקוח שולח פניות כאשר הוא מוכן לעבור למצב חדש. כאשר קיימת פנייה אחת או יותר שטרם הסתיים הטיפול בהן, הלקוח נמצא במצב של מעבר ממצב למצב. כאשר הלקוח נמצא בתהליך של שינוי מצב, השרת מעבד את המסמך המתאר את מצב הלקוח. המסמך עשוי להכילקישורים, שעשוי להיות בהם שימוש בפעם הבאה שהלקוח יבקש לשנות את מצבו.

ארכיטקטורת REST פותחה במקביל ל-HTTP 1.1. למרות זאת REST היא ארכיטקטורה כללית הניתנת למימוש גם בסביבות אחרות ולא רק תחת HTTP.

העיקרון המרכזי ב-REST: משאבים

[עריכת קוד מקור |עריכה]

משאב (Resource) הוא המושג העיקרי ב-REST. לכל משאב יש ייצוג (Representation). הייצוג יכול להיות מספרי או גרפי. היישום מבצע מניפולציות במשאב באמצעות שינויים בייצוג שלו. כך למשל ייצוג של מעגל עשוי להיות ייצוג גרפי של נקודה מרכזית ורדיוס, אבל יכול להיות גם שלושה ערכים מספריים בפורמט שלCSV.

לצורך ביצוע אינטראקציה עם המשאב היישום צריך לדעת רק את זיהוי המשאב ואת הפעולה שהוא מעוניין לבצע. הוא אינו צריך לדעת על מצבים קודמים, נתונים בזיכרון מטמון ושרתים מתווכים כגוןשרת פרוקסי. הסיבה לכך היא שכל המידע נשמר בשרת. האפליקציה חייבת להכיר את הפורמט בו מועבר הייצוג של המשאב. פורמט זה הוא בדרך כלל מסמך ב-XML, ב-HTML או ב-JSON, אף על פי שהוא יכול להיות גםטקסט או תמונה.

אילוצים

[עריכת קוד מקור |עריכה]

עבודה ב-REST מחייבת התחשבות באילוצים ובמגבלות של ארכיטקטורה זו, כמפורט להלן:

  • שרת-לקוח, עובד רק בתפיסת שרת לקוח, כאשר האחד אינו מושפע ממה שמתרחש באחר, למעט המסרים העוברים ביניהם.
  • Stateless, ההקשר (context) של הלקוח בפנייה לשרת, אינו נשמר בשרת. מגבלה זו נועדה לשפר אתמדרגיות (Scalability) השרת.
  • שימוש בזיכרון מטמון, ניתן לשמור תשובות מהשרת בזיכרון המטמון של מחשב הלקוח. המשמעות היא שניתן לעשות שימוש בתוכן התשובה גם בפרקי זמן מאוחרים יותר.
  • רב-שכבתיות, הקשר בין הלקוח לשרת לא חייב להיות ישיר. עשוי להיות שרת מתווך. לאפשרות זו משמעות בהקשרים של חלוקת עומסים (Load Balancing) ובהקשר שלאבטחת מידע.
  • כלל ממשק, ישנם כללים מחייבים לגבי הממשק בין הלקוח לשרת בנושאים כמו: זיהוי המשאב, מניפולציות על משאבים באמצעות היצוג שלהם, מסרים המתארים את עצמם בשלמות (המידע במסר צריך להספיק על מנת לעבד אותו, למשל: איזהParser יש להפעיל על המסר),hypermedia כמנוע של מצב האפליקציה.
  • קוד על פי דרישה, השרת יכול להרחיב את הקוד בלקוח באמצעות שליחת קוד הכולללוגיקה עסקית לביצוע בלקוח. הרחבה זו יכולה להיעשות באמצעות טכנולוגיות כגון:יישומונים ו-JavaScript. האילוץ האחרון הוא למעשה יכולת ולא מגבלה ואין חובה לעשות בו שימוש.

REST לעומת SOAP

[עריכת קוד מקור |עריכה]

קיים ויכוח בקהילה המקצועית בתחום המחשוב ביחס לשימוש ב-SOAP או ב-REST במימושWeb Services. בשנות האלפיים המוקדמות, הייתה העדפה ברורה לשימוש ב-SOAP. בשנים האחרונות השתנתה מגמה זו. ההבדל המהותי בין SOAP ל-REST הוא ש-REST היא ארכיטקטורה ו-SOAP הוא פרוטוקול.

התפיסה של REST מבוססת על שימוש במונחים ובמאפיינים קיימים בתוך פרוטוקול HTTP להגדרת אינטראקציה בין שרת ולקוח, כגון:headers לפניות (Requests) ולתגובות (Responses), ופורמטים של קבצים באינטרנט (Internet media types). לעומת זאת התפיסה ב-SOAP מבוססת על מאפיינים ומבנים ייעודיים ל-SOAP. הנגזרות של הבדל עקרוני זה הן צריכת משאבים נמוכה יותר בשימוש ב-REST מעל HTTP בהשוואה לצריכת המשאבים בשימוש ב-SOAP תחת HTTP וקלות בקידוד מהות הפניות והטיפול בתגובות תחת REST.

RESTful Web Service הוא Web Service פשוט המיושם באמצעות שימוש ב-HTTP ובעקרונות של REST.

להגדרה של RESTful Web Service יש שלושה מרכיבים:

  1. ה-URI הבסיסי של ה-Web Service, למשל:http://example.com/resources/
  2. סוג ה-MIME של הנתונים. במקרים רבים הוא:XML,YAML אוJSON.
  3. אוסף הפעולות הנתמכות על ידי ה-Web Service במונחים שלHTTP Methods, כגון: GET, POST, PUT, DELETE.

דוגמאות לשימוש ב-REST

[עריכת קוד מקור |עריכה]

בשנים האחרונות נעשה שימוש נרחב ב-REST בהקשרים של יישומיווב 2.0 ובמימושWeb Services ו-SOA. להלן מספר דוגמאות לשימוש בו:

ראו גם

[עריכת קוד מקור |עריכה]

קישורים חיצוניים

[עריכת קוד מקור |עריכה]
בקרת זהויותעריכת הנתון בוויקינתונים
אוחזר מתוך "https://he.wikipedia.org/w/index.php?title=REST&oldid=34707101"
קטגוריות:
קטגוריות מוסתרות:

[8]ページ先頭

©2009-2025 Movatter.jp