Ho un'applicazione che permetterà all'utente di inserire e memorizzare (in un DB) un URL di un sito Web per un'azienda. L'unico requisito (al momento) oltre l'entrata dell'URL del sito web è di verificare che l'URL sia valido e visualizzare l'URL con altre informazioni sulla società.
L'applicazione consiste in un'interfaccia utente client che trasferirà oggetti JSON al server. I controller Spring rest gestiscono la richiesta JSON e collegano tramite @RequestBody
all'entità, ad esempio all'entità Company
che contiene l'URL. Io uso @Valid
per convalidare l'entità.
Conosco due approcci.
- Assegna il campo
websiteUrl
diCompany
un tipo diString
e usa@URL
(org.hibernate.validator.constraints.URL
) per far sì che l'URL sia valido. Ma se utilizzo questo approccio, come faccio a consentire http e https? L'attributoprotocol
accetta solo un singoloString
. - Assegna il campo
websiteUrl
diCompany
un tipo dijava.net.URL
. Ciò consente ancora l'archiviazione nel DB come un varchar. Inoltre riflette accuratamente il tipo. Ma manca la semplice validazione dell'annotazione e l'associazione fallisce se l'URL non è valido.