כיצד להשתמש ביישום המדף ברובי

click fraud protection

בתוך ה מאמר קודם, למדת מה זה Rack. עכשיו הגיע הזמן להתחיל להשתמש ב- Rack ולהגיש כמה עמודים.

שלום עולם

ראשית, נתחיל עם "שלום עולם" יישום. יישום זה יחזור, לא משנה מאיזה סוג בקשה תינתן, יחזור עם קוד סטטוס של 200 (שהוא HTTP מדבר בשם "אישור") והמחרוזת "שלום עולם" כגוף.

לפני שתבדוק את הקוד הבא, שקול שוב את הדרישות שכל יישום Rack צריך לעמוד בהן.

יישום Rack הוא כל אובייקט רובי המגיב לשיטת השיחה, לוקח פרמטר hash יחיד ו מחזיר מערך המכיל את קוד סטטוס התגובה, כותרות תגובת HTTP וגוף התגובה כמערך של מיתרים.
כיתת HelloWorld
שיחת def (env)
חזור [200, {}, ["שלום עולם!"]]
סוף
סוף

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

WEBrick

זה די פשוט, עכשיו בואו לחבר אותו ל- WEBrick (שרת HTTP שמגיע עם רובי). לשם כך אנו משתמשים ב- מתלה:: מטפל:: WEBrick.run שיטה, העבירו לזה מופע של שלום עולם והנמל לרוץ עליו. כעת פועל שרת WEBrick, ו- Rack יעביר בקשות בין שרת HTTP ליישום שלך.

שימו לב, זו אינה דרך אידיאלית להשיק דברים עם Rack. מוצג כאן רק כדי לגרום למשהו לרוץ לפני שצלול לתכונה אחרת של Rack המכונה "Rackup", שמוצגת להלן. השימוש במתלה:: מטפל בדרך זו טומן בחובו כמה בעיות. ראשית, זה לא ניתן להגדרה במיוחד. הכל מקודד קשה לתסריט. שנית, כפי שתבחין אם תריץ את הסקריפט הבא, אינך יכול להרוג את התוכנית. זה לא יגיב ל- Ctrl-C. אם אתה מפעיל פקודה זו, פשוט סגור את חלון המסוף ופתח פתיחה חדשה.

instagram viewer

#! / usr / bin / env אודם
דורש 'מתלה'
כיתת HelloWorld
שיחת def (env)
חזור [200, {}, ["שלום עולם!"]]
סוף
סוף
מתלה:: מטפל:: WEBrick.run (
HelloWorld.new,
: נמל => 9000
)

מדף

אמנם זה די קל לעשות זאת, אך לא בדרך זו משתמשים במתלה. מתלה משמש בדרך כלל עם כלי שנקרא מתלה. Rackup עושה פחות או יותר את מה שהיה בחלק התחתון של הקוד למעלה, אך בצורה שמישה יותר. ה- Rackup מנוהל משורת הפקודה וניתן לו .ru "קובץ מדף." זה רק תסריט של רובי שמאכיל, בין היתר, אפליקציה ל- Rackup.

קובץ Rackup בסיסי ביותר עבור האמור לעיל ייראה כמו זה.

כיתת HelloWorld
שיחת def (env)
חזור [
200,
{'Content-Type' => 'text / html'},
["שלום עולם!"]
]
סוף
סוף
הפעל את HelloWorld.new

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

אם אתה מפעיל את הפקודה rackup helloworld.ru, זה יפעיל שרת ביציאה 9292. זוהי יציאת ה- Rackup המוגדרת כברירת מחדל.

ל- Rackup יש כמה תכונות שימושיות יותר. ראשית, דברים כמו היציאה ניתנים לשינוי בשורת הפקודה, או בשורה מיוחדת בתסריט. בשורת הפקודה, פשוט הזן א -p יציאה פרמטר. לדוגמה: rackup -p 1337 helloworld.ru. מתוך התסריט עצמו, אם השורה הראשונה מתחילה #\ואז הוא נותח בדיוק כמו שורת הפקודה. כך שתוכלו להגדיר גם אפשרויות כאן. אם רצית לרוץ בנמל 1337, השורה הראשונה של קובץ ה- Rackup הייתה יכולה לקרוא # \ -p 1337.

instagram story viewer