我正在使用 Graphaware 提供的 Neo4j 框架开发 Neo4j 服务器扩展。
我想在我的回复中发送以下对象(简化以便您可以看到属性):
public class DiffResult {
private Node fileOrFolder;
private Node originalContent;
private Path path;
}
问题是杰克逊无法渲染 Node 对象。我已经看到了一个 NodeRepresentation 类,但我也不知道如何在我的 Spring MVC 控制器中正确使用它。
我希望我的节点像在 Neo4j REST Api 中一样被序列化(参见文档: http: //neo4j.com/docs/stable/rest-api-nodes.html#rest-api-get-node)
我还向您展示了我正在使用的控制器(也简化了)。
@Controller
@RequestMapping("/diff")
public class FileSpaceDiffApi {
private final GraphDatabaseService database;
@Autowired
public FileSpaceDiffApi(GraphDatabaseService database) {
this.database = database;
}
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public List<DiffResult> diff(@QueryParam("fileSpaceId") Long fileSpaceId, @QueryParam("since") Long since) {
List<DiffResult> results = new ArrayList<DiffResult>();
Transaction tx = database.beginTx();
try {
Node startNode = database.getNodeById(fileSpaceId);
DiffResult diffResult = new DiffResult();
diffResult.setFileOrFolder(startNode);
results.add(diffResult);
tx.success();
}
finally {
tx.close();
}
return results;
}
}
理想情况下,我还希望能够以 JSON 格式呈现路径。