Sto sviluppando un'applicazione CRUD basata su componenti che utilizza Spring Data JPA e Spring Data REST. Ho diversi componenti. Ad esempio il sistema componente ha il modello User
e UserRepository
. I componenti sono differenziati in base al nome del pacchetto. come com.example.app.<component_name>
Come personalizzare Spring Data REST per utilizzare un percorso multi-segmento per una risorsa repository?
Quindi, per rendere il mio API REST look più pulito, ho bisogno di implementare l'URL API come di seguito.
host:8080/<component_name>/<model_collection_name>
ad esempio
host:8080/system/users
ho il seguente nel mio repository
@RepositoryRestResource(collectionResourceRel = "users", path = "system/users")
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
...
}
questo genera il seguente, quando ho goto http://localhost:8080
{
"_links": {
"users": {
"href": "http://localhost:8080/system/users{?page,size,sort}",
"templated": true
},
...
Ma quando ho goto http://localhost:8080/system/users
dà un errore
ven 22 mag 17:56:37 IST 2015 Si è verificato un errore imprevisto (type = Non Trovato, status = 404). Nessuna informazione disponibile
NOTA: Se io mappato il percorso system-users
allora funziona bene, ma quando uso un /
nel percorso, come system/users
, si rompe e dà l'errore.
L'argomento sembra valido, ma ciò non risolve il problema. Sto facendo uno studio di fattibilità tecnica sullo sviluppo di un'enorme applicazione ERP multi-componente. Comunque grazie per il tempo e lo sforzo che ci hai messo per rispondere a questa domanda. Se possibile, ti preghiamo di prendere in considerazione questo problema nelle versioni future, in quanto potrebbe aiutare gli altri come me. Ho creato un problema in Jira https://jira.spring.io/browse/DATAREST-555 –
In tal caso, Spring Data Rest non è adatto per il controllo delle versioni API? – IllSc
@IllSc è possibile eseguire la versione della propria API modificando il percorso di base tramite la proprietà spring.data.rest.base-path in application.properties. –