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
websiteUrldiCompanyun tipo diStringe 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'attributoprotocolaccetta solo un singoloString. - Assegna il campo
websiteUrldiCompanyun 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.