POST JSON all’API utilizzando Rails e HTTParty

Vorrei che un utente all’interno della mia app ruby ​​on rails fosse in grado di inviare un ticket al mio sistema di gestione dei ticket esterno, squishlist.com. Hanno una API e le istruzioni come segue. Devi autenticare e ottenere un token e quindi inviare il ticket con il token. Dalla squishlist.

# get the token https://api.squishlist.com/auth/?cfg=testcorp&user_key=privatekey&api_key=TEST-KEY-12345 => {"token": "authtoken", "expires": "2010-06-16 13:31:56"} # and then the ticket with the token https://api.squishlist.com/rest/?cfg=testcorp&token=authtoken&method=squish.issue.submit&prj=demo POST data: {'issue_type': 1, 'subject': 'Hello, world.', 4: 'Open', 5: 10} 

A scopo di test, ho creato un controller, una rotta e una vista (pagina) per il test. Sul mio controller ho il seguente

 require 'httparty' require 'json' class SubmitticketController  {:subject => 'This is the screen name', :issue_type => 'Application Problem', :status => 'Open', :priority => 'Normal', :description => 'This is the description for the problem'}) end end 

E poi ho una pagina che vado a vedere il risultato delle azioni dei controller e ha il seguente codice.

 

So che sta funzionando in generale a causa delle risposte che ho ricevuto lungo la strada. Il mio json è diverso dall’esempio a causa dei campi che ho definito in squishlist. Qualcuno può darmi una mano su questo problema?

Immagino che il vero problema sia che non riesco davvero a vedere come appare il JSON e se è persino vicino alla partita. Davvero non ne so molto di JSON. Dovrei usare qualcosa che potrebbe essere facile. Dovrei usare ajax per inviare questo. Qualsiasi aiuto è molto apprezzato. Amo la comunità qui.

Ho risolto questo .to_json aggiungendo .to_json e alcune informazioni sulla direzione

 @result = HTTParty.post(@urlstring_to_post.to_str, :body => { :subject => 'This is the screen name', :issue_type => 'Application Problem', :status => 'Open', :priority => 'Normal', :description => 'This is the description for the problem' }.to_json, :headers => { 'Content-Type' => 'application/json' } ) 

È anche disponibile l’opzione :query_string_normalizer , che sostituirà il normalizzatore predefinito HashConversions.to_params(query)

 query_string_normalizer: ->(query){query.to_json}