Како се користи Рацк апликација у Руби-у

У претходни чланак, научили сте шта је Рацк. Сада је време да почнете да користите Рацк и сервирате неке странице.

Здраво Свете

Прво, кренимо са „Здраво Свете" апликација. Ова апликација ће се, без обзира којој врсти захтева је дата, вратити са статусним кодом од 200 (што ХТТП говори за „ОК“) и низом "Здраво Свете" као тело.

Пре него што испитате следећи код, поново размотрите захтеве које мора испунити било која Рацк апликација.

Рацк апликација је сваки Руби објект који реагује на методу позива, узме један хасх параметар и враћа низ који садржи код статуса одговора, заглавља ХТТП одговора и тијело одговора као низ жице.
класа ХеллоВорлд
деф цалл (енв)
ретурн [200, {}, ["Поздрав свет!"]]
крај
крај

Као што видите, објекта типа Здраво Свете удовољиће свим овим захтевима. То ради на врло минималан и не ужасно користан начин, али испуњава све захтеве.

ВЕБрицк

То је прилично једноставно, сада је укључимо у ВЕБрицк (ХТТП сервер који долази) Руби). Да бисмо то урадили, користимо Рацк:: Руковатељ:: ВЕБрицк.рун

instagram viewer
метода, додајте му инстанцу Здраво Свете и порт који треба покренути. Сада ће се покренути ВЕБрицк сервер, а Рацк ће проследити захтеве између ХТТП сервера и ваше апликације.

Имајте на уму, ово није идеалан начин за покретање ствари помоћу Рацк-а. Овде је приказано само да се нешто покрене пре него што се удубите у другу карактеристику Рацк-а под називом "Рацкуп", која је приказана испод. Коришћење Рацк:: Хандлера на овај начин има неколико проблема. Прво, то није баш подесиво. Све је тврдо кодирано у сценарију. Друго, како ћете приметити ако покренете следећу скрипту, не можете убити програм. Неће одговорити на Цтрл-Ц. Ако покренете ову наредбу, једноставно затворите прозор терминала и отворите нови.

#! / уср / бин / енв рубин
захтевају 'сталак'
класа ХеллоВорлд
деф цалл (енв)
ретурн [200, {}, ["Поздрав свет!"]]
крај
крај
Рацк:: Руковатељ:: ВЕБрицк.рун (
ХеллоВорлд.нев,
: Порт => 9000
)

Накупити

Иако је то врло лако учинити, Рацк се обично не користи. Сталак се обично користи са алатком под називом накупити. Рацкуп ради мање или више онога што је било у доњем делу горњег кода, али на више употребљив начин. Рацкуп се покреће из командне линије и добија се а .ру „Рацкуп датотека.“ Ово је само сценариј Руби који, између осталог, храни апликацију за Рацкуп.

Врло основна Рацкуп датотека за горе наведено изгледала би овако.

класа ХеллоВорлд
деф цалл (енв)
повратак [
200,
{'Цонтент-Типе' => 'текст / хтмл'},
["Здраво Свете!"]
]
крај
крај
покрените ХеллоВорлд.нев

Прво смо морали да направимо једну малу промену Здраво Свете класа. Рацкуп покреће апликацију за средњи софтвер која се зове Носач:: Линта да су разлози за провјеру санитета. Сви ХТТП одговори требају имати Тип садржаја заглавље, тако да је то додато. Затим, последња линија само креира инстанцу апликације и прослеђује је у трцати метод. У идеалном случају, ваша апликација не сме бити написана у потпуности у датотеци Рацкуп, ова датотека би требало да захтева вашу апликацију у њој и на тај начин створи инстанцу. Рацкуп датотека је само „лепак“, не сме бити прави код апликације.

Ако покренете команду рацкуп хелловорлд.ру, покренуће сервер на порту 9292. Ово је подразумевани Рацкуп порт.

Рацкуп има још корисних функција. Прво, ствари попут порта могу се мењати у командној линији или у посебној линији у скрипту. У командној линији једноставно унесите а -п порт параметар. На пример: рацкуп -п 1337 хелловорлд.ру. Из саме скрипте, ако први ред почне #\, онда се раствара баш као и командна линија. Тако да овде можете дефинисати и опције. Ако желите да покренете на порт 1337, први ред датотеке Рацкуп могао би да прочита # \ -п 1337.

instagram story viewer