본문 바로가기
반응형

웹서비스 개발/Spring Rest API13

Swagger Swagger란? swagger는 REST api 문서를 자동으로 생성해주는 라이브러리이다. 앞에서 만든 게시판 생성 API를 만들었으면 프런트엔드 개발자가 사용할 수 있도록 문서를 다음과 같이 만들어 줘야 한다. url: /api/board method: POST request: json EX) { “title”: “제목”, “content”: “내용”} response: json EX) { “code”: 0, “message”: “success”} Swagger 적용 build.gradle에 springfox-swagger2 와 springfox-swagger-ui 라이브러리를 추가한다. dependencies{ ... compile('io.springfox:springfox-swagger2:2.7... 2021. 5. 23.
게시판 댓글 API CommentVO import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; @JsonInclude(JsonInclude.Include.NON_NULL) @Data public class CommentVO { private Integer id; private String context; private String created; private String updated; private Integer board_id; } CommentMapper import org.apache.ibatis.annotations.*; @Mapper public interface CommentMapper { @Options(useGeneratedKeys .. 2021. 5. 22.
이미지 보기 API ImageMapper.interface @Select({""}) ImageVO findOneImage(int id); ImageController.java @GetMapping("/view/{id}") public ResponseEntity findOne(@PathVariable int id) { ImageVO imageVO = imageMapper.findOneImage(id); HttpHeaders headers = new HttpHeaders(); headers.add("Content-Type", imageVO.getMimetype()); headers.add("Content-Length", String.valueOf(imageVO.getData().length)); return new Respon.. 2021. 5. 21.
이미지 업로드, DB 저장 이미지 업로드 방식은 두가지로 정의할 수 있다. 첫번째. 파일 업로드 버튼을 사용해서 올리게 되는 방법이다. Multi part 프로토콜 방식이며, 이 때는 브라우저가 해당 프로토콜에 맞게 올려주게 된다. 파일을 업로드하는 메소드는 POST를 사용한다. 특이점은 Body에 보내는 데이터의 콘텐트 타입이 form data 이지만, 여러부분으로 나누어서 보낸다. 두번재. json 방식으로 보내는 방식이다. 이미지는 binary로 구성되어있으므로, json으로 보내기 위해 string으로 변경해야 한다. Binary data를 base64로 인코딩에서 전송한다. 이 포스트에서는 첫번째 방식으로 구현해보자 한다. Datagrip 에서 아래의 DDL문을 실행해 image 테이블을 먼저 생성한다. create ta.. 2021. 5. 21.
Board 삭제 API Persistence 삭제 API를 위한 Persistence를 구현한다. BoardMapper.interface @Delete({""}) int deleteBoard(int id); Controller @DeleteMapping("/board") public ResultVO removeBoard(@RequestParam int id) { int result = boardMapper.deleteBoard(id); if (result > 0) { return new ResultVO(0, "success"); } else { return new ResultVO(100, "fail"); } } Postman Test DB 반영 확인 2021. 5. 20.
Board 수정 API Persistence 수정 수정 API를 위한 Persistence를 구현한다. BoardMapper.interface를 수정한다. @Update({""}) int updateBoard(BoardVO boardVO); Update 되는 property가 있을 가능성과 없을 가능성이 있기 때문에 if구문으로 null 여부를 체크한 구문이다. Controller 구현 @PutMapping("/board") public ResultVO modifyBoard(@RequestBody BoardVO boardVO) { int result = boardMapper.updateBoard(boardVO); if ( result > 0) { return new ResultVO(0, "success"); } else { r.. 2021. 5. 20.
반응형