2017-02-28 26 views
5

Verileri bir veritabanından bir Spring (SpringBoot) uygulamasında Restful API'ler olarak göstermek istiyorum. Spring Data Rest, bu etkinlik için amaç için tam olarak uygun görünmektedir.Yay verimi - Desteklenen işlemleri kısıtlamanın bir yolu var mı?

Bu veritabanı, uygulama ihtiyaçlarım için salt okunurdur. Varsayılan, tüm HTTP yöntemlerini sağlar. Diğer yöntemlerin maruz kalmasını kısıtlamak (aslında önlemek) için kullanabileceğim bir yapılandırma var mı? Hiding repository CRUD methods üzerine Bahar Dokümanlar

+3

En uygun yol, GET isteklerinden başka herşeyi engellemek için Yay güvenliği kullanmaktır. SDR, bu alanda işlevsellik sağlar: http://docs.spring.io/spring-data/rest/docs/current/reference/html/#customizing-sdr.hiding-repository-crud-methods, ancak HTTP düzeyinde işleme Spring Security ile daha kolay. –

cevap

12

:

16.2.3. Gizleme depo REZİL yöntemleri

Bir kaydetmek veya CrudRepository üzerinde yöntemini silmek, sen @RestResource kullanabilirsiniz maruz istemiyorsanız (= false ihraç) Kapatmak istediğiniz yöntemi ve sıralamayı geçersiz kılarak ayarı geçersiz sürümde ek açıklaması. Örneğin, HTTP kullanıcılarının CrudRepository silme yöntemlerini çağırmasını önlemek için, bunların tümünü geçersiz kılın ve ek açıklamaları geçersiz yöntemlere ekleyin.

@RepositoryRestResource(path = "people", rel = "people") 
interface PersonRepository extends CrudRepository<Person, Long> { 

    @Override 
    @RestResource(exported = false) 
    void delete(Long id); 

    @Override 
    @RestResource(exported = false) 
    void delete(Person entity); 
} 

Size hem ihracatçı gibi yöntemleri silmek geçersiz önemlidir anda hangi CRUD yöntemi daha hızlı çalışma zamanı performansında yararına kullanmak belirlemeye ilişkin biraz naif bir algoritma kullanır. numaralı bir kimliği alan ancak bir varlık örneğini alan sürümü dışa aktarılan silme sürümünü kapatmak için şu anda mümkün değildir. için şu anda, silme yöntemlerini verebilirsiniz veya vermeyebilirsiniz. 'un onları kapatmasını istiyorsanız, yalnızca dışa aktarılan = false ile hem sürümlerini açıklama eklemeniz gerektiğini unutmayın. 2018 itibariyle

+0

Bunu okuyorsanız, bu bileti oylama hakkında düşünmelisiniz. SDR tehlikeli olabilir. https://jira.spring.io/browse/DATAREST-1034 – Snekse

İlgili konular