원래의 URL을 주면 BASE 62 알고리즘을 통해 줄여진 SHORT URL을 만들어주는 사이트를 만들어보고, 실제 창에 SHORT URL을 입력하면 원래의 URL 로 리다이렉트되어 원래의 사이트로 들어가도록 한다.
SPRING BOOT, VUE JS
-createShortUrl : Origin URL을 폼에 입력하면 Short URL을 만들어주는 API
-redirect : Short URL을 입력하면 원래의 Origin URL로 리다이렉트 Origin Url 페이지로 들어가는 API
유효성 검증을 어떻게 해야 고민하다
HttpURLConnection을 통해 실제 페이지에 엑세스하는 형식으로 유효성 검증
public class UrlTypeValidation implements Validation {
@Override
public boolean valid(String url) {
try {
URL connectionUrl = new URL("http://"+url);
HttpURLConnection con = (HttpURLConnection) connectionUrl.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine = br.readLine()) != null)
System.out.println(inputLine);
br.close();
} catch (Exception e) {
return false;
}
return true;
}
}
spring boot + vue.js로 spring boot 프로젝트에 프론트 엔드 화면을 붙이다보니
설정이 꼬이게 되어 방법을 찾다 ModelAndView를 사용하여 Origin Url의 view를 띄우는 형식으로 활용하였다.
Controller 처리 결과 후 응답할 view와 view에 전달할 값을 저장
@GetMapping("/{shortUrl}")
public ModelAndView redirect(HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse, @PathVariable("shortUrl") String shortUrl) throws IOException {
final String url = urlService.getUrlByShortUrl(shortUrl);
if(url.contains("redirect")){
String redirectUrl = url;
}
return new ModelAndView(url);
}
기본 화면
유효하지 않은 URL 형식을 입력했을 때