2016-12-23 37 views
1

我正在嘗試使用Rally Web服務API重新排序2個項目。使用Rally API更改項目的排名

從看文檔,我應該能夠做到:

$.ajax({ 
     url: https://rally1.rallydev.com/slm/webservice/v2.0/task/12345?rankAbove=/slm/webservice/v2.0/task/56789, 
     type: 'PUT', 
     headers: { Authorization: Basic mytoken }, 
     success: function(data) { 

      //do something 

     } 
    }); 

但我得到一個錯誤:

Cannot parse input stream due to I/O error as JSON document: Parse error: expected '{' but saw '' [ chars read = \u003E\u003E\u003E\u003C\u003C\u003C ]" 

文檔似乎並沒有顯示我可能是什麼做錯了。

乾杯您的幫助

+0

什麼是myToken?它是一個API密鑰? –

+0

我試過用API令牌和我的用戶名和密碼base64編碼。這些鍵允許我列出來自API的項目,所以我知道它們的工作。 –

回答

1

您將無法使用基本身份驗證來做到這一點,因爲有一個額外的CSRF令牌,你需要傳遞。我想,你可以把它帶雖然API密鑰的工作:

headers: { zsessionid: myToken } 

你沒有與讀取數據的任何問題,因爲CSRF保護只能試圖修改數據時,可踢。

值得一提的是,App SDK通常會爲您處理大部分複雜問題。它看起來像你在你的應用程序中使用jQuery而不是,這就是爲什麼你需要做這個低級別的東西...

+0

謝謝我將嘗試JavaScript的標記頭。我一直在使用C#庫,但看不到任何可以爲我建立的排名。你有沒有一個如何使用Web應用程序來做到這一點的例子? –

+1

只要您使用.net工具包的最新版本,您應該可以使用Update方法的重載,該方法接受參數的NameValueCollection(如rankAbove):http://rallytools.github.io/ RallyRestToolkitFor.NET/html/47057c17-e7c6-4386-18ae-907698df2891.htm –

+0

感謝您的鏈接,我改變了方向,並在處理程序中使用了c#的功能,而不是手工製作一些jQuery來代替它。我已經設法對完成的內容進行基本更新,但rankAbove和rankBelow似乎不影響排名。我已經完全從文檔中複製了示例,但無法讓它們移動。你有任何提示嗎? –