Back-End/REST with spring boot basic

    12. file upload

    프로토콜 파일을 업로드하는 메서드는 Post 이다. 그런데 Content-Type이 좀 독특하다. Request할때 헤더를 fiddler를 사용해서 살펴보면, Content-Type: multipart/form-data; boundary=abcdefghhhhhhhhhhhh body에 보내는 데이터의 content type이 form-data이긴 한데 여러부분으로 나누어 보낸다는 multipart 형태이다. 그리고 각각의 part 사이는 boundary를 이용해서 구분하는데, 앞에 –를 붙인다. 그리고 맨 마지막에 끝날때는 다시 –를 붙인다. 예를 들어 3 part를 전송한다고 가정하면 아래와 같다. –abcdefghhhhhhhhhhhh one part … –abcdefghhhhhhhhhhhh two pa..

    11. hero delete method

    PERSISTENCE @Delete({""}) int deleteHero(int hero_id); CONTROLLER @DeleteMapping("hero") public ResultVO removeHero(@RequestParam int hero_id) { int result = heroMapper.deleteHero(hero_id); if ( result > 0) { return new ResultVO(0, "success"); } else { return new ResultVO(100, "fail"); } } 호출 유알엘은 /api/hero 이고 메서드는 delete, 입력파라메터는 Query Parameter로 받는다. delete메서드는 Get 메서드와 동일하게 Request의 body가 존재하..

    10. hero put method

    PERSISTENCE @Update({""}) int updateHero(HeroVO hero); update 되는 property가 있을수도 있고 없을수도 있기 때문에 if 구문으로 null여부를 체크한다. 그리고, update 구문을 만들때 set key1 = value1, key2 = value2, 이런식으로 만들면 맨 뒤에 콤마는 없어야 한다. 그러므로 trim 구문을 사용하여 prefix 는 set으로 맨 앞에 set을 위치 시키고 맨뒤에 콤마는 없애라는 suffixOverrids=”,” 구문을 맨 뒤에 넣는다. CONTROLLER @PutMapping("/hero") public ResultVO modifyHero(@RequestBody HeroVO hero) { int result = her..

    09. hero get method

    PERSISTENCE 구현 hero_id를 입력으로 해서 하나의 hero를 가져오는 api와 모든 hero를 가져오는 두개의 get method가 필요하다. @Select({""}) List findHero(); @Select({""}) HeroVO findOneHero(int hero_id); CONTROLLER 구현 @GetMapping("/hero/{hero_id}") public HeroVO findOneHero(@PathVariable int hero_id) { return heroMapper.findOneHero(hero_id); } @GetMapping("/heroes") public List findOneHero() { return heroMapper.findHero(); } POSTMAN..

    06. 데이터베이스 연동 – docker 기반

    DOCKER 설치 리눅스 기반 클라우드 서버가 있다면 거기에 MariaDB를 설치하면 되지만, 가장 쉽게 데이터베이스를 설치하는 방법은 리눅스 기반에 MariaDB를 설치하고 그것을 이미지로 구워놓은걸 가져다 쓰면 제일 쉽게 설치할 수 있다. 이 개념이 docker 기반으로 docker는 컨테이너 이고 컨테이너 위에 이미지를 올리면 된다. 그러므로 먼저 docker를 설치해야 한다. 윈도우 기반에 docker를 설치를 설치해도 되고 여기서는 아마존 서버 혹은 구글 클라우드 서버 Centos7 64비트 머신위에 docker를 설치해본다. # yum update 가 제대로 실행되지 않을 경우 아래에서 baseurl 주석을 제거한다. vi /etc/yum.repos.d/CentOS-Base.repo # 설치전..

    05. json 데이터 보내고 받기

    VO 객체 만들기 Json은 JavaScript Object Notation이다. 스트링타입이 아니라 { “result”: 0, “msg”: “name” } 라는 json 형태로 리턴하기 위해서 com.test.springboot 폴더에 domain 패키지를 추가하고 ResultVO 클래스를 추가한다. @Data @NoArgsConstructor @AllArgsConstructor public class ResultVO { private int result; private String msg; } 여기서 어노테이션은 lombok에서 설정한 라이브러리이다. gradle.build에 Lombok 라이브러리가 추가되었기 때무에 compile 에러는 나지 않지만 실제로 동작하기 위해서는 컴파일시에 Lombok ..

    03. GET

    HELLO 메서드: 모든 METHOD 허용, 출력은 STRING controller 패키지를 추가한다. com.eastflag.fullstack 패키지를 선택후 우클릭후 new -> package 를 누른 다음 controller를 입력한다. HelloController 자바 클래스를 만든다. controller 패키지를 선택 후 우클릭 new -> Java Class 후 HelloController를 입력한다 HelloController에 아래와 같이 작성한다. package com.test.springboot.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bi..