2016-04-27 12 views
0

Hallo Ich baue REST-API für eine App, habe ich eine Anforderung in URL so dass url so etwas wie dies zB RESTFUL URLs in Schienen?

www.abc.com/api/param1/value1/param2/value2/param3/value3.... and so on

Es gibt Fälle,

Fall

sein sollte: Die Anzahl der Parameter ist nicht begrenzt kann es häufig ändern

wenn heute ist es so etwas wie

www.abc.com/api/param1/value1/param2/value2/param3/value3

morgen es wie dieses www.abc.com/api/param1/value1/param2/value2/param3/value3/param4/value4

eine Konfiguration und alles gehen glatt

und in conrtollerparams sollte, wo, wenn Sie die URL-Muster konfigurieren kann diese enthalten Gibt es Art des Schlüssel-Wert-Paares { "param1" => "value1","param2" => "value2","param3" => "value3"...and so on }

irgendein Vorschlag !! Wie erreiche ich das ??

+0

verlängern Sie bitte die Beschreibung Ihres Problems Domain weiter. Was soll diese API erreichen? Ist es "GET" oder "POST" und geben Sie vielleicht ein reales Beispiel. Aus Ihrer Beschreibung scheint Ihre Anforderung nicht zu meinem Verständnis einer guten RESTful-API zu passen. –

+0

Es kann beides sein. – ashwintastic

Antwort

1

Wenn Ihr params nicht festgelegt sind, können Sie Platzhalter in

Routing verwenden

für z get 'items/list/*specs', controller: 'items', action: 'list'

def list 
specs = params[:specs] # e.g, "base/books/fiction/dickens" #split it and place in a hash 
end 
0

Das Routing von Schienen bietet eine Möglichkeit, vollständig benutzerdefinierte Routen mit statischen und dynamischen Segmenten anzugeben, wie in der Rails Routing Guide erläutert.

Ihre Anforderung sollte mit

get '/api/param1/:param1/param2/:param2/...', to: 'controller#action' 
+0

Wenn ich n Nummern von api habe dann muss ich n mal in meine Routen schreiben – ashwintastic

+0

Das hängt davon ab. Bitte geben Sie drei Beispielanfragen mit unterschiedlichen APIs in Ihrer Frage an, um Ihr Ziel besser zu verstehen. –

0

Sie erreichbar sein route scoping für diese besondere Art von Problem verwenden können. In anderer Art und Weise ist es nested routes

Weitere Details: http://guides.rubyonrails.org/routing.html#nested-resources

Dies ist ein Beispiel dafür ist,

GET /magazines/:magazine_id/ads/:id/edit ads#edit
return an HTML form for editing an ad belonging to a specific magazine

Ich denke, dies für Sie hilfreich wäre.

+0

Ich benutze verschachtelte URLs, um dies zu erreichen, aber es gibt ein Problem ..was wenn ich noch einen Parameter hinzufügen muss dann wat zu tun ?? – ashwintastic

+0

Ich habe Ihr Problem gerade nicht verstanden. kannst du es erklären. –

+0

Ich habe die Frage aktualisiert .. – ashwintastic