2016-05-06 9 views
3

私はここで私は、カスタムcontroller.hereを使用してRESTリソースからの削除機能を無効にする必要がある要件を持っているが、私はAAカスタムコントローラを作成しているrestResource春データ休息カスタムコントローラ

@RepositoryRestResource 
    public interface SampleRepository extends JpaRepository<Sample,Long>{ 
List<Sample> findBySampleNumber(@Param("sampleNumber") String sampleNumber); 
    } 

ためのコードであります今だけGET api/samples/1(someId)をするか、またはRepositoryRestResourceにいくつかの検索機能を検索しようとした場合、私は次のエラー

を参照してくださいしかしfuctionality

@RepositoryRestController 
@RequestMapping("/api/samples") 
public class SampleController{ 
    @Autowired 
    SampleRepository sampleRepository; 

    @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) 
    @ResponseBody 
    public void delete(@PathVariable Long id) { 
     //do some custom logic here 
     //then delete the sample 
     //sampleRepository.delete(id); 

    } 

を削除overides

"description": "Request method 'GET' not supported"

機能の残りの部分は、リポジトリから上がってくる持っている唯一の1つのHTTP動詞を無効にする方法があります。私は、コントローラからpublic void deleteコメント場合

は、しかし、私は

すべてのCRUDと検索操作にもアクセスできるようにしています誰もが、私はあなたが使用する必要がSPRING_DATA_REST-2.5.1-Release

+0

を参照してくださいませんが、解決策は同じです:http://stackoverflow.com/questions/21734149/namedquery-override-findall-in-spring-data-rest-jparepository – WeMakeSoftware

答えて

2

を使用しています、このような問題

が発生しましたRequestMappingアノテーションはmethod level onlyにあります。あなたは

@RepositoryRestController 
public class SampleController{ 
    @Autowired 
    SampleRepository sampleRepository; 

    @RequestMapping(value = "/api/samples/{id}", method = RequestMethod.DELETE) 
    public void delete(@PathVariable Long id) { 

    } 

としてだけでなく、スプリングのデータは、作成、保存、削除、ドメインの前と後に実行するための様々なイベントを提供します。あなたのコントローラを定義する必要が

+0

おかげでリンクを指摘するためのリンク[リンク] http://docs.spring.io/spring-data/rest/docs/2.4.0.M1/reference/html/#customizing-sdr.overriding-sdr-response-handlers。これは解決されました –

2
+0

@Nlrav Modi私はイベントを使用して何らかのエンティティ検証を行い、Beanがいくつかの基準を満たしているかどうかを確認しました –

+0

はい、しかしカスタムロジックは何か分かりません。イベント。あなたの問題が解決したら、答えを受け入れることができます。 –

関連する問題