2014-09-10 22 views

cevap

17

Oluşturulan varlığı aramak zorunda değilsiniz. HTTP özelliklerinin önerdiği gibi, 201 Created durum kodu döndüren POST isteklerinin, yaratılan kaynağın URI'sini içeren bir Location başlık içermesi gerekir.

Böylece yapmanız gereken tek şey, söz konusu URI'ye GET isteğini etkili bir şekilde vermek. Spring Data REST'in ayrıca, RepositoryRestConfiguration.setReturnBodyOnCreate(…) ve ….setReturnBodyOnUpdate(…)'da iki yöntemi vardır; bu çerçeveyi, oluşturulan kaynağın temsilini hemen döndürmek üzere yapılandırmak için kullanabilirsiniz. Bahar Boot ile

+2

için application.properties dosyasına aşağıdaki satırları ekleyebilirsiniz, ben aslında güncelledik Spring Data REST'in başlaması, bu bilgileri içerecek şekilde kılavuzluk eder, böylece bu özelliği keşfetmek için buraya gelmeniz gerekmez. – gregturn

+0

@gregturn Bence bu tam olarak aradığım çözüm. – chrylis

+0

Mükemmel! Bunu okumayı hatırlıyorum ama testlere başladığımda nereye bakacağımı unuttum. –

9

Örnek:

@Configuration 
@EnableMongoRepositories 
@Import(RepositoryRestMvcConfiguration.class) 
@EnableAutoConfiguration 
public class Application { 

    public static void main(String[] args) { 

     ConfigurableApplicationContext ctx = SpringApplication.run(Application.class, args); 

     RepositoryRestConfiguration restConfiguration = ctx.getBean(RepositoryRestConfiguration.class); 

     restConfiguration.setReturnBodyOnCreate(true); 
    } 
} 

veya

@Configuration 
@EnableMongoRepositories 
@EnableAutoConfiguration 
public class Application extends RepositoryRestMvcConfiguration { 

    public static void main(String[] args) { 

     SpringApplication.run(Application.class, args); 
    } 

    @Override 
    protected void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { 
     super.configureRepositoryRestConfiguration(config); 
     config.setReturnBodyOnCreate(true); 
    } 
} 

İyi Şanslar!

+2

configureRepositoryRestConfiguration, 2.4 sürümünden beri, RepositoryRestConfigurer.configureRepositoryRestConfiguration (RepositoryRestConfiguration) yöntemini doğrudan doğruya veya RepositoryRestConfigurerAdapter öğesini uygulayıp yöntemi geçersiz kılar. –

0

Burada RepositoryRestMvcConfiguration veya ConfigurableApplicationContext kullanarak genişletmek yerine DI kullanan başka bir varyant. Bahar Önyükleme kullanıyorsanız

@SpringBootApplication 
@EnableConfigurationProperties 
@Configuration 
@ComponentScan 
public class Application { 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args);  
    } 

    @Autowired private RepositoryRestConfiguration repositoryRestConfiguration; 

    @PostConstruct 
    public void exposeIds() { 
     this.repositoryRestConfiguration.setReturnBodyForPutAndPost(true); 
    } 
} 
+0

bu alternatif, daha sonra, daha iyi bir çözüm ya da gerçekten sadece bir alternatif mi? Demek istediğim, herhangi birini kullanarak kazanç var mı? –

3

, bu soruya dayanarak sırasıyla POST (oluştur) ve PUT (güncelleme)

spring.data.rest.return-body-on-create=true 
spring.data.rest.return-body-on-update=true 
İlgili konular