spring data REST を使用して、ProjectRepository
プロジェクトの一覧表示とそれらに対する CRUD 操作の実行をサポートする を公開しました。に行くとhttp://localhost:8080/projects/
、期待どおりにプロジェクトのリストが表示されます。
私がやろうとしているのは_links
、プロジェクト コレクションの JSON 応答のセクションにカスタム アクションを追加することです。
たとえば、次のhttp://localhost:8080/projects/
ようなものを返すように呼び出したいと思います。
{
"_links" : {
"self" : {
"href" : "http://localhost:8080/projects/{?page,size,sort}",
"templated" : true
},
"search" : {
"href" : "http://localhost:8080/projects/search"
},
"customAction" : {
"href" : "http://localhost:8080/projects/customAction"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
どこcustomAction
かのコントローラで定義されています。
私は次のクラスを作成しようとしました:
public class ProjectCollectionResourceProcessor implements ResourceProcessor<Resource<Collection<Project>>> {
@Override
public Resource<Collection<Project>> process(Resource<Collection<Project>> listResource) {
// code to add the links to customAction here
return listResource;
}
}
そして、次の Bean をアプリケーション構成に追加します。
@Bean
public ProjectCollectionResourceProcessor projectCollectionResourceProcessor() {
return new ProjectCollectionResourceProcessor();
}
しかしprocess(...)
、呼ばれることはないようです。リソースのコレクションにリンクを追加する正しい方法は何ですか?