私は春ブーツ、春データREST、春HATEOASは、Hibernate、JPAを使用しています。カスタムコントローラ
私は自分のアプリケーションで広く春データRESTを使用していると私は私のエンティティのすべてのリポジトリを公開します。 残念ながら、管理しにくい特定のケースがあります。 ことの一つはこれです:
私は、カスタムコントローラました:
@Api(tags = "CreditTransfer Entity")
@RepositoryRestController
@RequestMapping(path = "/api/v1")
@PreAuthorize("isAuthenticated()")
public class CreditTransferController {
@RequestMapping(method = RequestMethod.GET, path = "/creditTransfers/{id}")
public ResponseEntity<?> findAll(@PathVariable("id") long id, HttpServletRequest request, Locale locale,
PersistentEntityResourceAssembler resourceAssembler) {
//my code
}
@RequestMapping(method = RequestMethod.DELETE, path = "/creditTransfers/{id}")
public ResponseEntity<?> deleteMovement(@PathVariable("id") long id, HttpServletRequest request, Locale locale,
PersistentEntityResourceAssembler resourceAssembler) {
//my code
}
ここでの問題は、これらのエンドポイントをオーバーライドし、私は春データRESTを作成/検索エンドポイントを隠していますということです。それは私にとって非常に重要です。
私はこの春、データRESTから提供されたデフォルトのエンドポイントと干渉しなくても動作できるようにする任意のスマートな方法を見つけるdid't。
私の問題を解決する方法はありますか?
============================================== ========================
小さな増強が、このようなマッピングを使用している。このように
@RequestMapping(method = RequestMethod.DELETE, path = "/creditTransfers/{id:[0-9]+}")
するコントローラを私はGET localhost:8080/api/v1/creditTransfers
しようとすると、私はちょうどDELETEメソッドをオーバーライドする場合は、まだURL localhost:8080/api/v1/creditTransfers/search
をキャッチしませんが、私はエラーRequest method 'GET' not supported
をしました。私のコントローラは、設定したパスだけでなく、特定のパスのすべてのメソッドをオーバーライドしているようです。
コントローラーの権利ではなく、リポジトリーのURLを上書きしたいですか? –
@AmrAlaaまた、実装をオーバーライドする必要があります。実際には、DELETEの実装をオーバーライドする必要がありました。 urlは、Spring Data RESTが提供するデフォルトのリポジトリと同じです。それが問題です。 – drenda