OData – פרוטוקול למידע נגיש

פרוטוקול המידע הנגיש OData (קיצור של Open Data Protocol) הוא פרוטוקול לגישה למידע לצורך ביצוע שאילתות ועדכונים, ומאפשר לשחרר מידע שעד היום היה נעול בתוך אפליקציות ולפתוח אותו לעולם

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

פרוטוקול המידע הנגיש OData (קיצור של Open Data Protocol) הוא פרוטוקול לגישה למידע לצורך ביצוע שאילתות ועדכונים,  ומאפשר לשחרר מידע שעד היום היה נעול בתוך אפליקציות ולפתוח אותו לעולם. OData מיושם על בסיס פרוטוקולים סטנדרטים באינטרנט כמו HTTP, כמו Atom Publishing Protocol (בקיצור AtomPub) ו- JSON, כדי לאפשר למגוון אפליקציות ופלטפורמות לעשות בו שימוש. ע”י שימוש ב- OData ניתן לחשוף מידע במגוון צורות – החל ממידע רלציוני, דרך מידע ב- File System, מערכות ניהול תוכן ואתרי Web מגוונים.

גישה פשוטה למידע נגיש

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

דוגמא: מאגר המידע הנגיש של Netflix

Netflix היא חברת בארה”ב שמשכירה סרטים למנוייה ב- DVD ובשנים האחרונות גם דרך האינטרנט. יש לה אוסף עצום בגודלו המכיל פרטים על סרטים לפי שפות וז’אנרים, שחקנים, פרסים שניתנו להם ועוד המון מידע. כדי להפוך מידע זה לנגיש, חושפת Netflix את הנתונים כ- OData Service בכתובת: http://odata.netflix.com/Catalog.

אם נגלוש לכתובת הזאת, נוכל לראות את קטלוג המידע. המכיל מספר Collections כגון: People, Titles וכו’.

כדי לצלול פנימה לתוך Collection מסויים, נשתמש בשורת הכתובת, ונגלוש למשל ל- http://odata.netflix.com/Catalog/People

במבט ראשון, נראה שקיבלנו RSS Feed של נתונים, ויש בכך מן האמת. פרוטוקול המידע הנגיש OData מבוסס על פרוטוקול Atom שלו שימוש דומה ל- RSS ולכן הדפדפן מציג אותו בתצוגה ידידותית כזאת. כדי לבטל את התצוגה הידידותית, ניתן להכנס להגדרות הדפדפן (Tools –> Options), לבחור בטאב Content, באיזור ה- Feeds ללחוץ על הכפתור Settings ובמסך שנפתח לבטל את הסימון Turn on feed reading view.

לאחר ביטול ההצגה הידידותית, יוצגו הנתונים בכתובת http://odata.netflix.com/Catalog/People באופן הבא:

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

זיהוי ייחודי של פריט מידע

השדה id של פריט המידע (מופיע בירוק) מציין את המזהה הייחודי שלו והדרך לגשת אליו דרך שורת הכתובת. למשל, אם נגלוש לכתובת: (http://odata.netflix.com/Catalog/People(1247 נוכל לראות פרטים של שחקן בודד (Jason Alexander, הלא הוא ג’ורג מסיינפלד)

קשרים בין פריטי מידע

כמובן שבין יישויות מידע קיימים קשרים. למשל בין שחקן לרשימת הסרטים בהם משחק, הפרסים בהם זכה וכו’. שוב, על ידי שורת הכתובת ניתן לנווט בין פריטי המידע כדי להגיע למידע אותו מעוניינים לקבל. למשל, אם נרצה לראות את רשימת הסרטים בהם שיחק, נוכל לגלוש לכתובת: http://odata.netflix.com/Catalog/People(1247)/TitlesActedIn ולקבל את הרשימה הבאה:

הרשימה מכילה את הסרטים בהם שיחק Jason Alexander כאשר ניתן לשים לב כי לכל סרט כזה יש מזהה ייחודי מסוג Title. לדוגמא: ניתן לקבל את פרטי הסרט הראשון ברשימה בכתובת (‘http://odata.netflix.com/Catalog/Titles(‘6uXu.

שימו לב שחלק מהשדות של הנתונים יכולים להכיל גם תמונות, וניתן לקבל גם אותן בכתובת:http://odata.netflix.com/Catalog/Titles(‘6uXu’)/$value

ביצוע שאילתות

ברור שרשימת השחקנים או הסרטים במאגר של Netflix יכולןת להיות די גדולןת ולא תמיד נרצה לשלוף את כולן. ניתן לבצע שאילתות ע”פ מאפייני יישויות המידע. למשל:

רשימת כל הפרמטרים שניתן לבצע על שאילתות ניתן למצוא כאן.

סיכום

OData מאפשר להפוך מידע לנגיש ולחשוף אותו החוצה לעולם בצורה קלה לשימוש ולהתמצאות ושנינת לגישה ממגוון פלטפורמות. הפרוטוקול בנוי מעל HTTP ושומר על הכללים במקובלים באינטרנט.

תהנו!

הפוסט פרוסם במקור בבלוג קוד פתוח במיקרוסופט

גיא בורשטיין

מומחה טכנולוגיות פיתוח במיקרוסופט ישראל, אחראי על הקשר עם קהילת הפתחים בארץ ובימים אלו מוביל את פעילות פיתוח האפליקציות ל- Windows 8

הגב

הגב ראשון!

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

* שימו לב: תגובות הכוללות מידע המפר את תנאי השימוש של Geektime, לרבות דברי הסתה, הוצאת דיבה וסגנון החורג מהטעם הטוב ו/או בניגוד לדין ימחקו. Geektime מחויבת לחופש הביטוי, אך לא פחות מכך לכללי דיון הולם, אתיקה, כבוד האדם והדין הישראלי.

wpDiscuz

תגיות לכתבה:

נותרו עוד
00
ימים
:
00
שעות
:
00
דקות
:
00
שניות
לכנס המפתחים הגדול בישראל