REST API - POST

강9·2024년 1월 5일
0

Web

목록 보기
4/7
post-thumbnail

🔖 POST

📌 Method

의미CRUD멱등성안정성Path VariableQuery ParameterDataBody
POST리소스 생성, 추가CXXOO

💡 멱등성이란? : 서버에 여러번 요청해도 항상 결과가 같다의 표현
💡 △ 표시 : 할 수는 있지만 하지 않는 것을 추천하는 것을 △로 표시함


📌 어노테이션

@RestController : 컨트롤러 기능을 하는 특정 클래스를 지정
@RequestMapping("/주소A") : 해당 주소 처리
@PostMapping(path = "/주소B") : 해당 클래스 안에 해당된 /주소A 하위에 /주소B 메서드를 처리
@RequestBody : 해당 객체 클래스는 JSON으로 전달된 데이터를 해당 변수에 매칭해서 내려주게 됨
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class) : 요청이 JSON snake_case로 들어오면 자동으로 camelCase로 변환


@RestController
@RequestMapping("/api")
public class PostApiContoroller {

    // TODO : BookRequest 객체 타입(JSON)으로 리턴
//    @PostMapping("/post") // http://localhost:8080/api/post
//    public BookRequest post(
//            @RequestBody BookRequest bookRequest
//    ) {
//        System.out.println(bookRequest);
//        return bookRequest;
//    }

    // TODO : String 타입으로 리턴
    @PostMapping("/post") // http://localhost:8080/api/post
    public String post(
            @RequestBody BookRequest bookRequest
    ) {
        System.out.println(bookRequest);
        return bookRequest.toString();
    }
}

Request Body 데이터 받기 예시)

Talend API

예시) Content-Type : JSON

예시) Content-Type : String


💡 한글 인코딩 에러 발생 시

  1. 상단바
    도움말(Help)
    사용자 지정 VM 옵션 편집(Edit Custom VM Options...)
  2. idea.vmoptions에 아래 내용 추가입력 후 저장(Save)
    -Dfile.encoding=UTF-8
    -Dconsole.encoding=UTF-8
  3. 프로젝트 종료 후 재실행

💡 JSON을 표현하는 방식 (대표 2가지)

  • snake case : user_name
  • camel case : userName
{"key1" : "value1",
 "key2" : "value2",
 "array" : [
 10, 20, 30
 ],
 "string_array" : [
   "Aa", "Bb", "Cc"
   ],
 "object_array" : [
   {"key1" : "AA"},
   {"key2" : "BB"},
   {"key3" : "CC"}
 ]
}
@Data
@AllArgsConstructor
@NoArgsConstructor
// 요청이 snake_case로 들어오면 camelCase로 변환하는 어노테이션
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
public class UserRequest {
    private String userName;
    private String phone;
    private String email;
}
profile
코린이 일기

0개의 댓글

관련 채용 정보