我们已经使用ASANA API大约4个月了,但是今天我们开始在ASANA中创建任务时出现错误:
5:15:48,208 ERROR [stderr] (pool-13-thread-1) Exception in thread "pool-13-thread-1" com.sun.jersey.api.client.ClientHandlerException: org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "num_hearts" (Class net.joelinn.asana.tasks.Task), not marked as ignorable
05:15:48,210 ERROR [stderr] (pool-13-thread-1) at [Source: sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@6eae04be; line: 1, column: 296] (through reference chain: net.joelinn.asana.tasks.Task["num_hearts"])
在client.createTask()调用时发生错误,参见下面的代码:
protected void createProjectTasks(Project template, AsanaDetails asanaDetails, Long createdProjectId) {
try {
String asanaWorkspaceName = asanaDetails.getWorkspaceName();
Asana asana = new Asana(asanaDetails.getApiKey());
Tasks tasks = asana.projects().getTasks(template.id);
Workspace workspace = getWorkspace(asana, asanaWorkspaceName);
if (workspace == null) {
throw new AsanaException("Asana workspace with name " + asanaWorkspaceName + " is not found");
}
if (tasks == null) {
return;
}
Collections.reverse(tasks);
TasksClient client = asana.tasks();
for (Task task : tasks) {
TaskRequestBuilder taskRequestBuilder = new TaskRequestBuilder();
if (StringUtils.isNotBlank(task.name)) {
taskRequestBuilder.name(task.name);
taskRequestBuilder.completed(false);
taskRequestBuilder.addProject(createdProjectId);
taskRequestBuilder.workspace(workspace.id);
client.createTask(taskRequestBuilder);
}
}
} catch (ApiException e) {
throw new AsanaException(e.getMessage());
}
}
我检查了任务类,没有字段有注释的"num_hearts",所以,我有点困惑什么被打破了这里,我们没有做任何代码更改约一个月…
,这是API版本:
<dependency>
<groupId>net.joelinn</groupId>
<artifactId>asana</artifactId>
<version>0.5.4</version>
</dependency>
任何想法吗?提前感谢
我们很高兴在API中发布了对任务和故事中心脏的支持。这些字段包括新字段"hearts"、"hearts"one_answers"num_hearts"。你可以在我们的文档中了解更多。
不幸的是,您的客户端抛出了一个错误,因为它到达了一个它不能识别的新字段(num_hearts)。由于客户机似乎是开源的,您可能希望向它们发送一个pull请求,以添加对新hearts属性的支持。或者,可能值得泛化客户端,以便在将来添加新字段时不会抛出错误。为了使API与产品开发保持同步,我们将不时添加字段和端点。您可以指望现有字段不会消失,但指望不添加新字段就不好了。