Metoda żądania HTTP

Witam.

Chciałbym się zapytać w jaki sposób można odczytać metodę żądania HTTP.
W php korzystam z tablicy SERVER[‘Request_method’].

Po wejściu na stronę chciałbym otrzymać informację, czy wszedłem metodą GET, POST, PUT, a może DELETE

Pozdrawiam : )

W kontrolerze:

request.method

http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-request_method

albo z env, albo rack, mozliwosci kilka ale cos zle kombinujesz, wbrew rails cos mi sie mocno wydaje opisz twoj problem, co chcesz osiagnac. Bo no pewno nie potrzebujesz wiedziec “czy wszedłem metodą GET, POST, PUT”

Chciałbym spróbować napisać w ruby serwer do komunikacji ‘klient-serwer’ w architekturze REST.

W zależnoście od metody żądania HTTP, serwer wykonuje na stałe przypisane do niej operację.

Użyj rack-a: http://rack.github.io/

Tutaj łagodne wprowadzenie: http://rubylearning.com/blog/a-quick-introduction-to-rack/

Ja zrobiłbym to tak w pliku config.ru:

    class App
  def call(env)
    out = case env['REQUEST_METHOD']
    when 'GET'
      'GET action'
    when 'POST'
      'POST action'
    when 'PUT'
      'PUT action'
    when 'DELETE'
      'DELETE action'
    end
    [200, {"Content-Type" => "text/html"}, [out]]
  end
end

run App.new

Taki serwer uruchamiasz poleceniem rackup i z drugiej konsoli:

    $ curl -X GET localhost:9292
    GET action
$ curl -X POST localhost:9292
    POST action

Dzieki :smile:

Chciałbym zapytać o coś jeszcze.

Używając RoR napisałem prostą stronę zawierającą jeden kontroler i kilka akcji. Czy korzystając z powyższego sposobu mógłbym np, gdy metoda będze ‘GET’, odpalić odpowiedni kontroler i akcję ?

Może to Cię zainteresuje http://asciicasts.com/episodes/222-rack-in-rails-3

Witaj,

Możesz to zrobić na poziomie routera.
Zerknij tutaj: http://guides.rubyonrails.org/routing.html#connecting-urls-to-code

Z tego co piszesz wnioskuję, że używasz Railsów, ale działasz “przeciwko” nim :wink:

Może dla Twoich potrzeb lepsze będzie napisanie kodu w Sinatrze http://www.sinatrarb.com/ ?

Pozdrawiam :slight_smile:


Nauka Ruby on Rails po polsku: http://szkolenie-ruby-on-rails.macuk.pl/

Załapałem :wink: Rzeczywiście lepsze będzie napisanie kodu w sinatrze.

Mam jeszcze pytanie o testowanie.
Znacie może hostingi obsługujące Ruby, Sinatre, gdzie mógłbym wrzucić kod i go przetestować ? Localhost jest dla mnie nie wystarczający ;p

Pzdr

Witaj,

Zerknij tutaj: Hosting dla Ruby on Rails

Wg mnie mógłbyś spróbować na https://www.heroku.com/ lub na https://shellycloud.com/

Tutaj opis jak odpalić aplikację w Sinatrze na ShellyCloud: https://shellycloud.com/documentation/rack_based_apps

Pozdrawiam :slight_smile:

Piotr Macuk


Nauka Ruby on Rails po polsku: http://szkolenie-ruby-on-rails.macuk.pl/

Zarejestrowałem się na shellycloud, jednak mam problem z logowaniem.
Wyświtla się komunikat:
“No such file or directory - ssh-keygen -lf C:/Users/Patryk/.ssh/id_rsa.pub Use ssh-keygen to generate ssh key pair”

Plik id_rsa, jest w tej lokalizaji. Nie mam pojęcai o co chodzi.

masz cos ze srodowiskiem, msci sie uzyanie windowsa