2015-07-09 16 views
6

Mam wiele problemów ze zrozumieniem interfejsu API Grape, w szczególności z route_param i jak działa tylko z params.Nie można zrozumieć parametru trasy interfejsu API Grape

Rozważmy następujący kod:

desc "Return a status." 
params do 
requires :id, type: Integer, desc: "Status id." 
end 
route_param :id do 
get do 
    Status.find(param[:id]) 
end 
end 

Co trasa ma ten blok produkować? Rozumiem, że jest to żądanie get, ale dlaczego jest ono opakowane w blok route_param? Dlaczego nie może być w bloku params?

Odpowiedz

7

Twój blok produkuje tę trasę:

http://yourdomain.com/<resource>/<id> 

pamiętać, że kod i poniżej kod zrobić to samo i produkują tą samą trasą:

desc "Return a status." 

params do 
    requires :id, type: Integer, desc: "Status id." 
end 

get ':id' do 
    Status.find(params[:id]) 
end 

Można użyć route_param metod grupowych otrzymują te same parametry, na przykład:

resource :categories do 
    route_param :id do 
    get do # produces the route GET /categories/:id 
    end 

    put do # produces the route PUT /categories/:id 
    end 
    end 
end 
+0

Dziękuję za zwięzłość i jasność zrównanie. To bardzo pomaga. – kcg5544

+0

Nie ma za co. W tym przypadku i aby pomóc ludziom tutaj w SO, nie zapomnij ustawić tej odpowiedzi jako prawidłowej. :-) – Marlon

Powiązane problemy