2016-01-24 17 views

risposta

7

È possibile configurarlo utilizzando RepositoryRestConfigurerAdapter a livello di entità.

@Configuration 
public class ExposeEntityIdRestConfiguration extends RepositoryRestConfigurerAdapter { 

    @Override 
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) { 
     config.exposeIdsFor(MyEntity.class); 
    } 
} 

Essere consapevoli del fatto che l'utilizzo di questo si sta lavorando contro i principi della primavera-dati-riposo - SDR promuove ipermedia per essere in grado di utilizzare un'API per la navigazione tra le risorse che utilizzano i collegamenti - qui le tue risorse sono identificati e referenziato da collegamenti e quindi gli ID non sono più necessari. L'utilizzo degli ID sul client spinge la complessità della costruzione di collegamenti alle risorse per il client. E il cliente non dovrebbe essere infastidito da questa conoscenza.

+4

C'è un modo per esporre id di tutte le tue entità in una volta? Ad es. impostazione in config? – thorinkor

+0

Come posso farlo per tutte le entità contemporaneamente? Abbiamo molti pacchetti di cui questo modulo non è a conoscenza. – BigDong

0

La soluzione migliore sarebbe non utilizzare gli ID delle entità e utilizzare i riferimenti di collegamento forniti dall'ipermedia. È sufficiente analizzare il JSON in base alle specifiche HAL utilizzate da Spring Data Rest.

Problemi correlati