Как настроить пути (routes) и обработчики запросов в Sinatra?

Пользователь

от marlen , в категории: Ruby , 6 месяцев назад

Как настроить пути (routes) и обработчики запросов в Sinatra?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от hermina.hauck , 6 месяцев назад

@marlen 

В Sinatra пути (routes) и обработчики запросов настраиваются с помощью методов класса Sinatra::Base.

  1. Определите класс, унаследованный от Sinatra::Base:
1
2
3
4
5
require 'sinatra/base'

class MyApp < Sinatra::Base
  # Методы-обработчики запросов и пути
end


  1. Определите обработчики запросов с помощью методов, соответствующих HTTP-методам:
1
2
3
4
5
6
7
get '/' do
  'Hello, world!'
end

post '/users' do
  # Обработчик POST-запроса на /users
end


  1. Доступ к параметрам маршрута и параметрам запроса осуществляется с помощью синтаксиса :имя_параметра:
1
2
3
4
5
6
7
8
9
get '/users/:id' do
  id = params[:id]
  # Обработчик GET-запроса на /users/:id
end

post '/users' do
  name = params[:name]
  # Обработчик POST-запроса на /users со значением параметра name
end


  1. Используйте шаблоны пути для настройки обработчиков запросов с помощью глубинных маршрутов:
1
2
3
4
get '/hello/*' do
  name = params[:splat].first
  # Обработчик GET-запроса на /hello/<name> и /hello/<name>/<anything>
end


  1. Запустите приложение с помощью метода run:
1
2
3
if __FILE__ == $0
  MyApp.run!
end


Вот пример полного приложения с настройкой путей и обработчиков запросов в Sinatra:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
require 'sinatra/base'

class MyApp < Sinatra::Base
  get '/' do
    'Hello, world!'
  end

  get '/users/:id' do
    id = params[:id]
    "User ID: #{id}"
  end

  post '/users' do
    name = params[:name]
    "Hello, #{name}!"
  end

  get '/hello/*' do
    name = params[:splat].first
    "Hello, #{name}!"
  end

  run! if app_file == $0
end


Выполнив этот код, вы сможете запустить сервер Sinatra и отправить запросы на определенные пути, которые будут соответствовать их обработчикам. Например, после запуска сервера вы сможете отправить GET-запрос на http://localhost:4567/users/123, и вы получите ответ User ID: 123.