Rest API

김태은·2022년 5월 21일
0

코멘토 실무 과제

목록 보기
3/4

REST API 개발

1. API 명세서 작성

-> 담당자 개체를 CRUD하기 위한 API명세서를 작성한다.

2. Spring MVC 구조

  • Controller : 해당 요청 url에 대한 적절한 view와 mapping 처리
    • @Controller : api와 view를 동시에 사용하는 경우, view(화면) return이 주 목적
    • @RestController : view가 필요없는 api만 지원하는 서비스에서 사용, data(json, xml 등) return이 주 목적
    • @RestController = @Controller + @ResponseBody
  • Service : 적절한 비즈니스 로직 처리
  • DAO / Mapper : 실제로 커넥션을 통해 DB에 접근하는 객체, 사용자의 요청마다 커넥션을 생성하지 않고, 모든 DB와의 연결을 DAO객체로 효율적으로 관리
  • SQL Mapper : SQL을 기반으로 데이터를 매핑해준다.
  • DTO : 어플리케이션 계층 간에 데이터를 전달하는 객체이다.

3. Spring MVC에 맞게 클래스 생성

  • Entity(VO) : entity패키지에 Manager Entity를 생성한다.
  • Controller : controller패키지에 ManagerApiController를 생성한다.
  • Service(interface) : service패키지에 ManagerService를 생성한다.
  • ServiceImpl(구현체) : serviceImpl 패키지에 ManagerServiceImpl를 생성한다.
  • Mapper(interface) : mapper패키지에 ManagerMapper를 생성한다.
  • SQL Mapper : resources 폴더 아래 mappers 패키지를 생성한 뒤 mappers 패키지에 managerMapper를 생성한다.

4. 코드 작성하기

  • 작성한 API 명세서를 토대로 코드를 작성한다.
  • 계층 간 객체를 전달하기 위한 DTO를 필요에 따라 생성해준다.
  • SQL Mapper -> Mapper -> Service -> ServiceImpl -> Controller 순으로 코드 작성

Exception 처리

  • Exception 패키지 생성
  • PracticalErrorCode, PracticalException, PracticalExceptionHandler를 추가하여 커스텀 Exception을 생성하고 처리할 수 있도록 한다.
  • ErrorCode에 예외가 발생되는 경우 나타낼 메시지를 추가한다.
  • Service에서 데이터를 처리할 때 예외가 발생하는 경우 커스텀 Exception을 활용할 수 있다.
    Ex) ID로 담당자 조회 시 해당 담당자가 존재하지 않을 때

5. Swagger.io를 통해 테스트 문서 작성

  1. 담당자 추가
  • json형식으로 추가할 담당자의 데이터를 입력한 뒤 excute 클릭
  • 응답코드가 200으로 정상적으로 서버의 응답을 받음
  1. 담당자 조회
  • 전체 담당자 조회 시 여러 개의 담당자 데이터가 조회
  • Id로 특정 담당자 조회 시 하나의 담당자 데이터 조회
  • 조회하고자 하는 담당자의 ID가 존재하지 않을 시 커스텀 에러 메시지 출력
  • 담당자 이름으로 조회 시 검색된 이름을 포함하는 담당자 데이터 조회
  1. 담당자 정보 수정
  • 담당자의 직급과 전화번호를 수정할 수 있도록 함
  • 수정 시 해당 담당자의 수정 시간(update_time)에 현재 시간을 넣어줌
  1. 담당자 데이터 삭제
  • 삭제하고자 하는 ID 입력 후 Excute
  • 해당 ID를 가진 담당자의 데이터가 삭제됨

0개의 댓글