回應

每個要求都會有JSON格式的回應。 如果要求成功,回應會具有資料屬性,如果有問題,則會具有錯誤屬性。 例如,請求

GET /attask/api/v15.0/proj/4c7c08b20000002de5ca1ebc19edf2d5

會傳回類似下列的JSON回應:

{
    "data": [
        {
            "percentComplete": 0,
            "status": "CUR",
            "priority": 2,
            "name": "Brand New Project",
            "ID": "4c7c08b20000002de5ca1ebc19edf2d5" 
        } 
    ] 
注意
透過瀏覽器的位址列執行GET要求時,不需要將sessionID納入要求的一部分。

已針對PUT、POST和DELETE請求新增特殊安全性。 只有在URI中包含​ sessionID=abc123 ​時,才能執行導致寫入資料庫或從資料庫刪除的任何要求。 下列範例說明這會如何尋找DELETE請求:

GET/attask/api/v15.0/project?id=4c78...54d0&method=delete&sessionID=abc123
GET/attask/api/v15.0/project/4c78...54d0?method=delete&sessionID=abc123

驗證

API會驗證每個請求,以確保使用者端有權檢視或修改請求的物件。

透過傳入工作階段ID來執行驗證,該ID可使用以下方法之一指定:

請求標頭驗證

首選的驗證方法是傳遞包含工作階段權杖的名為SessionID的請求標頭。 這樣的優點在於可以安全地抵禦跨網站請求偽造(CSRF)攻擊,並且不會為了快取目的而干擾URI。

以下是請求標頭的範例:

GET /attask/api/v15.0/project/search
SessionID: abc1234

Cookie型驗證

此API使用的是Web UI用於系統的相同基於Cookie的驗證。 其中,如果使用者端使用網頁UI登入Workfront,則從相同瀏覽器內進行的任何AJAX呼叫都會使用相同的驗證。

注意
為了防止CSRF (跨網站請求偽造)攻擊的可能性,此驗證方法僅適用於唯讀操作。

登入

重要
Workfront不再建議使用/login端點或API金鑰。 請改用下列其中一種驗證方法:
  • 使用JWT進行伺服器驗證
  • 使用OAuth2進行使用者驗證
如需設定這些驗證方法的說明,請參閱為Workfront整合建立OAuth2應用程式
如需在Workfront中使用伺服器驗證的指示,請參閱使用JWT流程設定和使用您組織的自訂OAuth 2應用程式
如需在Workfront中使用使用者驗證的指示,請參閱使用授權碼流程設定並使用您組織的自訂OAuth 2應用程式
注意
本節所述的程式僅適用於尚未加入「Adobe業務平台」的組織。 如果您的組織已加入Adobe Business Platform,就無法透過Workfront API登入Workfront。
如需根據貴組織是否已加入Adobe Business Platform而有所差異的程式清單,請參閱以平台為基礎的管理差異(Adobe Workfront/Adobe Business Platform)

使用有效的使用者名稱和密碼,您可以使用以下要求來取得工作階段ID:

POST /attask/api/v15.0/login?username=admin&password=user

這樣會設定Cookie以驗證未來的請求,並傳回JSON回應,其中包含新建立的sessionID、登入使用者的使用者ID以及其他工作階段屬性。

注意
如果您有同時身為管理員的指定API使用者,Workfront強烈建議您使用API金鑰來登入。

產生API金鑰

您可以以該使用者身分登入系統時產生API金鑰,如下列範例所示:

PUT /attask/api/v15.0/user?action=generateApiKey&username= username&password=password&method=put

擷取先前產生的API金鑰

您也可以執行getApiKey,擷取先前為特定使用者產生的API金鑰:

PUT /attask/api/v15.0/user?action=getApiKey&username=user@email.com&password=userspassword&method=put

然後,您可以使用此結果,新增「apiKey」作為請求引數,取代工作階段ID或使用者名稱和密碼,以驗證任何API呼叫。 從安全性角度來看,這是有好處的。

以下請求為使用apiKey從專案擷取資料的範例:

GET /attask/api/v15.0/project/abc123xxxxx?apiKey=123abcxxxxxxxxx

使API金鑰失效

如果apiKey值已洩漏,您可以執行「clearApiKey」,讓目前的API金鑰失效,如下列範例所示:

GET /attask/api/v15.0/user?action=clearApiKey&username=user@email.com&password=userspassword&method=put

清除後,您可以再次執行getApiKey以產生新的API金鑰。