Graphaware が提供する Neo4j フレームワークを使用して、Neo4j サーバー エクステンションを開発しています。
応答で次のオブジェクトを送信する必要があります (属性を確認できるように簡略化されています)。
public class DiffResult {
private Node fileOrFolder;
private Node originalContent;
private Path path;
}
問題は、Jackson が 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 でパスをレンダリングできるようにしたいと考えています。