2010-11-29 12 views
1

Ich habe gerade angefangen, Ruby on Rails zu lernen, und ich frage mich, wie ich etwas tun kann, was ich in PHP leicht machen kann. Ich möchte einige grundlegende Webdienste erstellen, die mit POST-Parametern aufgerufen werden können und ein JSON als Antwort senden. Ich weiß überhaupt nicht, wie ich mit Ruby on Rails anfangen soll.Ruby on Rails Webdienste mit POST-Anfrage

Ich bin sicher, es gibt einige Best Practice, um diese Art von Dingen zu tun, also wenn Sie mir etwas beraten könnten, wäre es großartig!

Grüße,

Antwort

1

Um die POST-Parameter zu erhalten, schauen Sie nur in den params-Hash in Ihrem Controller, der alle Parameter für die Anfrage haben wird, ob sie als POST-Parameter, GET-Parameter oder als Teil kommen der Route (zB/users /: id/new => params [: id] in der Steuerung)

Um json von der Anfrage zurückkehrt, würden Sie gerade einen Anruf wie diese machen machen:

render :json => @model 

Darüber hinaus ist Ihre Frage ein wenig breit für den Umfang einer Antwort auf SO. Ich empfehle Agile Web Development with Rails als Ausgangspunkt, um die Rails-Entwicklung zu lernen.

0

Die große Sache über Schienen ist, dass es auf dem Prinzip der REST basiert.

Wenn Sie eine REST-konforme Ressource erstellen, erstellen Sie tatsächlich gleichzeitig einen Web-Service.

Zum Beispiel. Angenommen, Sie erstellen eine Ressource mithilfe eines Gerüstgenerators.

rails g scaffold Feed title:string content:string 

Dies wird nicht nur alle Ansicht Logik in HTML, sondern auch in XML erstellen.

Im Anschluss an den ersten Kommentar:

Wenn Sie in der Steuerung aussehen, im respond_to Block können Sie den Rückgabetyp angeben. Also wollen Sie die xml-Version von new treffen und die json-Version von create zurückgeben.

Um Ihren behandelten Parameter json, steckt sie in einem Hash-Render:

js = {:my => {:json => 'hash'}} 
render :json => js 
+0

Ja, ich habe das verstanden, aber ich weiß nicht, wie man die Parameter einer POST-Anfrage auf einer meiner Seiten holt, eine Behandlung an ihnen durchführt und abhängig von dieser Behandlung eine JSON-Zeichenfolge zurücksendet – MartinMoizard

+0

I würde sagen, du musst in "antwort_to" schauen, ich habe nicht so viele Web-Dienste verwendet, aber ich habe sicherlich json zuvor zurückgegeben. – scaney

+0

aber wie die JSON-Zeichenfolge anpassen? – MartinMoizard