使用REST API将引用添加到XTRF

时间:2013-09-17 11:16:01

标签: xtrf

请告诉我如何使用REST API向XTRF发布报价。我们在REST API中有POST /引用功能,但我无法找到我们需要传递给该API调用的参数,并且我获得了Http状态415 - 不支持的媒体类型。

如果有人知道如何使用REST API在XTRF中添加引用,请帮助我

2 个答案:

答案 0 :(得分:0)

XTRF REST API方法POST /quotes需要JSON格式的内容。 如果内容不符合JSON格式(即使用不同格式或JSON字符串中存在一些语法错误),它将使用HTTP状态代码415(不支持的媒体类型)进行响应。

示例内容可能如下所示:

{
  "name" : "Google Gloves",
  "customerProjectNumber" : "G-312-2012",
  "workflow" : { "name" : "TP" },
  "specialization" : { "name" : "Economy"},
  "sourceLanguage" : {"name" : "English"},
  "targetLanguages" : [ {"name" : "Polish"}, {"name" : "German"} ],
  "deliveryDate" : "2012-09-15 11:30:00",
  "notes" : "Sample notes",
  "autoAccept" : false,
  "priceProfile" : {"name" : "Euro [€]"},
  "persons" : [{"id": 10}, {"id": 12}],
  "files" : [{"id": 1415596305}, {"id": 2005194325}],
  "referenceFiles" : [{"id": 4129771301}]
}

提示:如果您使用JavaScript中的API,则可以使用JSON.stringify函数确保将对象正确序列化为JSON格式的字符串。

答案 1 :(得分:0)

我可以使用以下CURL操作创建引用。希望这会有所帮助。

$data =  '{
    "name" : "Test Estimate Newest",
    "customerProjectNumber" : "Test Project XX",
    "workflow" : { "name" : "Edit" },
    "specialization" : { "name" : "Economy"},
    "sourceLanguage" : {"name" : "English"},
    "targetLanguages" : [ {"name" : "Polish"}, {"name" : "German"} ],
    "notes" : "Sample notes",
    "autoAccept" : false,
    "persons" : [{"id":"131"}],
    "files" : [],
    "referenceFiles" : []
    }'; 
$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'Your URL to XTRF');
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiepath);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'Content-Type: application/json', 'Content-Length: '. strlen($data))); 

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;

-Vamsi