6차 REST 에서 CRUD 구현 1

리얼브로·2023년 2월 27일
0
  1. RESTful API 서비스에서의 HTTP 메서드 사용
  • HTTP 메소드

    • GET

    • POST

    • PUT

    • DELETE

      OperationHTTP Method
      ReadGET
      CreatePOST
      UpdatePUT
      DeleteDELETE
  • CRUD 설계

    • HTTP의 GET, POST, PUT, DELETE를 주로 활용하여 데이터의 CRUD를 구현한다.
    • UserController 생성 : /users
      • GET
        • public Map<String, Object> getAllUsers();
        • public Map<String, Object> getUser(@PathVariable(“userid”) Integer userid);
      • POST
        • public Map<String, Object> createUser();
      • PUT
        • public Map<String, Object> updateUser();
      • DELETE
        • public Map<String, Object> deleteUser();
  • Data Transfer Object 디자인 패턴

    • 데이터를 각 서버/클라이언트 간 전달하기 위한 목적으로 만든 객체
      • java.io.Serializable 인터페이스 : 구현 객체직렬화 지원
      • Immutable 객체로 만듬 : setter 포함하지 않음
      • 도메인(모델) 객체를 래핑(wrapping))
  • JSON

    • JSON(JavaScript Object Notation)이란?
      • http://www.json.org
      • JSON은 경량(lightweight)의 DATA-교환 형식
      • JavaScript에서 객체를 만들 때 사용하는 표현식을 의미함
      • JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서,
        최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용함
      • 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서
        JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리를 제공하고 있음
    • JSON 라이브러리 - Jackson
      • http://jackson.codehaus.org
      • High-Performance JSON Processor!
      • Jackson은 JSON 형태를 Java 객체로, Java 객체를 JSON 형태로 변환해주는 Java용 JSON 라이브러리임
      • 가장 많이 사용하는 JSON 라이브러리임
  • API 응답 포맷

    • 요청에 대한 응답의 결과를 상태와 데이터로 구분
      {
        "status":"OK",
        "data":{}
      }
    • 페이징 샘플
      {
        "status":"OK",
        "data":{},
        "error"null,
        "pageNumber":1,
        "nextPage":"http://localhost:8080/users?page=2",
        "total":13
      }
    • 에러 메시지
      {
        "status":"ERROR",
        "data":null,  
        "error":{
          "errorCode":999,
          "description": "Email address is invalid"
        }
      }
  1. JSON Data Format, REST(HTTP) 클라이언트
  • REST 클라이언트
    • Postman : REST API 테스트하는 Chrome 확장 프로그램 설치
    • REST 클라이언트는 HTTP에이전트로써 주로 GUI를 통해 HTTP요청을 수행하고
      응답을 받아 사용자에게는 알려주는 어플리케이션이다.
      주로 많이 쓰이는 REST 클라이언트로는 Postman, Insomnia, Paw, Katalon Studio 등이 있다.

0개의 댓글