Ruby on rails uygulamamdaki bir kullanıcının harici bilet yönetim sistemim olan squishlist.com'a bir bilet gönderebilmesini istiyorum. Aşağıdaki gibi bir api ve talimatları var. Bir jetonu doğrulamanız ve bir jeton almanız ve ardından bileti jetonla birlikte göndermeniz gerekir. Squishlist'ten.
# 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}
Test amacıyla, test için bir kontrolör, yol ve görünüm (sayfa) oluşturdum. Kumandamda aşağıdakiler var
require 'httparty'
require 'json'
class SubmitticketController < ApplicationController
def submit_a_ticket
@cfg = 'xxxsupport'
@user_key = '4787fsdbbfbfsdbhbfad5aba91129a3f1ed1b743321f7b'
@api_key = 'MrUser411'
@project = 'excelm-manoke'
@url_new_string = 'https://api.squishlist.com/auth/?cfg='+@cfg+'&user_key='+@user_key+'&api_key='+@api_key
# https://api.squishlist.com/auth/?cfg=xxxsupport&user_key=4787fsdbbfbfsdbhbfad5aba91129a3f1ed1b743321f7b&api_key=MrUser411 - this is what is created by @url_new_string
response = HTTParty.get(@url_new_string.to_str) #submit the string to get the token
@parsed_and_a_hash = JSON.parse(response)
@token = @parsed_and_a_hash["token"]
#make a new string with the token
@urlstring_to_post = 'https://api.squishlist.com/rest/?cfg='+@cfg+'&token='+@token+'&method=squish.issue.submit&prj='+@project
#submit and get a result
@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'})
end
end
Ve sonra denetleyicilerin eylemlerinin sonucunu görmek için gittiğim bir sayfam var ve aşağıdaki koda sahip.
<p><%= @result %></p>
Yol boyunca aldığım yanıtlar nedeniyle genel olarak işe yaradığını biliyorum. Squishlist'te tanımladığım alanlar nedeniyle json'um örnekten farklı. Bu konuda bana yardımcı olabilecek biri var mı?
Sanırım asıl sorun, json'un neye benzediğini ve hatta eşleşmeye yakın olup olmadığını gerçekten görememem. JSON hakkında gerçekten pek bir şey bilmiyorum. Kolay olabilecek bir şey kullanmalı mıyım? Bunu göndermek için ajax kullanmalı mıyım? Herhangi bir yardım çok takdir edilmektedir. Buradaki topluluğu seviyorum.
:headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json'}
. Not: başlık