Je voudrais qu’un utilisateur de mon application ruby on rails puisse envoyer un ticket à mon système de gestion de tickets externe, squishlist.com. Ils ont un api et des instructions comme suit. Vous devez vous authentifier et obtenir un jeton, puis soumettre le ticket avec le jeton. De 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}
À des fins de test, j’ai créé un contrôleur, une route et une vue (page) pour les tests. Sur mon contrôleur, j’ai les éléments suivants
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
Et puis j’ai une page que je vais voir pour voir le résultat des actions des contrôleurs et il a le code suivant.
Je sais que cela fonctionne en général en raison des réponses que j’ai reçues en cours de route. Mon json est différent de l’exemple en raison des champs que j’ai définis dans squishlist. Quelqu’un peut-il m’aider sur cette question?
Je suppose que le vrai problème est que je ne peux pas vraiment voir à quoi ressemble le json et s’il est même proche de l’être. Je ne connais vraiment pas beaucoup Json. Devrais-je utiliser quelque chose qui pourrait être facile. Devrais-je utiliser ajax pour le soumettre? Toute aide est grandement appréciée. J’aime la communauté ici.
J’ai résolu ce problème en ajoutant .to_json
et des informations de titre
@result = HTTParty.post(@urlssortingng_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' } )
L’option :query_ssortingng_normalizer
est également disponible et remplacera le normaliseur par défaut HashConversions.to_params(query)
query_ssortingng_normalizer: ->(query){query.to_json}