Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 이클립스
- Cannot determine URI for
- http://localhost:8080/js/app/index.js
- System.out.println
- 사피
- 줄바꿈
- 구글 로그인 후 경로
- 삼성청년소프트웨어아카데미
- sysout
- 회고
- 싸피
- 구글 로그인 후 js
- 자동으로 줄내리기
- 줄변경
- Java
- 중도퇴소
- sysout자동입력
- 7기
- Word Wrap
- SSAFY
- System
- 구글 로그인 후 redirect
- 취업퇴소
- /js/app/index.js
- cannot determine url for
- 특화프로젝트
Archives
- Today
- Total
IT탐험
스프링 REST API 본문
- Representational State Transfer
- 하나의 URI가 고유한 리소스를 처리하는 공통 방식
- /board/112 : 게시글 중 112번째 글
- 전송 방식을 나타내는 method 속성의 값에 따라 리소스에 대한 추가 작업을 요청
- RESTful API
- REST 방식으로 제공되는 API
- 트위터와 같은 Open API에서 활발히 사용중
- 하나의 URI가 고유한 리소스를 처리하는 공통 방식
- @RestController
- 스프링 3버전까지는 @ResponseBody 애너테이션으로 REST 방식의 데이터 처리 지원
- 스프링 4버전에서는 @RestController 애너테이션으로 REST 방식의 데이터 처리 지원
- JSP 같은 뷰를 반환하는 것이 아닌, JSON, XML 같은 데이터를 브라우저로 전송하는 컨트롤러
- @PathVariable
- 브라우저에서 요청 URL로 전달된 매개변수를 가져온다
-
더보기
@RequestMapping(value= "/notice/{num}" , method = RequestMethod.GET) public int notice(@PathVariable("num") int num ) throws Exception { return num; }
- Ajax를 적용할 때 @RequestBody 와 @ ResponseBody를 자주 사용한다
- @RequestBody
- 브라우저에서 전달되는 JSON 데이터를 객체로 자동 변환
- @ResponseBody
- JSP를 뷰리졸버로 리턴한 뒤 브라우저에 결과를 표시하는게 아닌 텍스트나 JSON으로 결과를 전송
- @RequestBody
- @ResponseEntity
- @RestController는 별도의 View를 제공하지 않고 데이터를 전달하므로 예외가 발생할 수 있다
- 예외에 대한 세밀한 제어는 ResponseEntity 클래스를 사용한다
- HTTP 상태 코드를 설정하여 앱으로 전송
-
그룹 코드 상수 설명 정보 응답 100 CONTINUE 정상 상태이고 클라이언트가 계속해서 요청하거나 요청이 완료된 경우에는 무시해도 된다는 정보 101 SWITCHING_PROTOCOL 클라이언트가 보낸 upgrade 요청 헤더에 대한 응답
서버에서 프로토콜을 변경할 것임을 알림성공 응답 200 OK 요청이 성공적으로 완료 201 CREATED 요청이 성공적이었고 그 결과로 새로운 리소스 생성 202 ACCEPTED 요청을 수신했지만 그에 응한 행동은 할 수 없음 리다이렉션 메시지 300 MULTIPLE_CHOICE 요청에 대해 하나 이상의 응답이 가능 301 MOVED_PERMANENTLY 요청한 리소스의 URI가 변경 302 FOUND 요청한 리소스의 URI가 일시적으로 변경 303 SEE_OTHER 클라이언트가 요청한 리소스를 다른 URI 에서 GET 요청을 통해 얻어야 할 경우 서버가 클라이어트로 직접 보내는 응답 클라이언트 오류 응답 400 BAD_REQUEST 잘못된 문법으로 인해 서버가 요청을 이해할 수 없음 401 UNAUTHORIZED 인증되지 않았음 403 FORBIDDEN 클라이언트가 콘텐츠에 접근할 권리가 없다 404 NOT_FOUND 요청 받은 리소스를 찾을 수 없다 서버 오류 응답 500 INTERNAL_SERVER_ERROR 처리할 수 없는 내부 오류 발생 501 NOT_IMPLEMENTED 메서드를 서버가 지원하지 않거나 처리할 수 없다는 의미 503 SERVICE_UNAVAILABLE 서버가 요청을 처리할 준비가 되지 않았다는 의미 -
더보기
@RequestMapping("/membersList2") public ResponseEntity<List<MemberVO>> listMembers2() { List<MemberVO> list = new ArrayList<MemberVO>(); for (int i = 0; i < 10; i++) { MemberVO vo = new MemberVO(); vo.setId("lee" + i); vo.setPwd("123"+i); vo.setName("이순신" + i); vo.setEmail("lee"+i+"@test.com"); list.add(vo); } return new ResponseEntity(list,HttpStatus.INTERNAL_SERVER_ERROR); }
-
- HttpHeaders 클래스를 이용하면 전송할 데이터의 종류와 한글 인코딩 설정 가능
-
더보기
@RequestMapping(value = "/res3") public ResponseEntity res3() { HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.add("Content-Type", "text/html; charset=utf-8"); String message = "<script>"; message += " alert('새 회원을 등록합니다.');"; message += " location.href='/pro29/test/membersList2'; "; message += " </script>"; return new ResponseEntity(message, responseHeaders, HttpStatus.CREATED); }
-
- HTTP 상태 코드를 설정하여 앱으로 전송
REST 방식으로 URI 표현
- 서버에 데이터를 조회하는 것 외에도 추가, 수정, 삭제 기능도 REST 방식으로 요청할 수 있다
- HTTP 메서드를 이용하여 처리
-
메서드 설명 POST 추가 GET 조회 PUT 수정 DELETE 삭제
-
- 작업을 REST 방식으로 요청하는 URI
- /작업명/기본키 + 메서드 + 데이터
- 작업명 : 요청하는 작업 종류
- 기본키 : 요청하는 작업에 해당하는 대상의 기본키
- 메서드 : 요청하는 기능
- 데이터 : 기능 수행에 필요한 JSON 데이터
- 게시판 기능과 관련된 URI
-
메서드 URI 설명 POST /boards + 데이터 새 글 등록하기 GET /boards/133 133번 글 조회 PUT /boards/133 + 데이터 133번 글 수정 DELETE /boards/133 133번 글 삭제
-
- /작업명/기본키 + 메서드 + 데이터
- HTTP 메서드를 이용하여 처리
'게시판만들기기록 > 스프링 프레임워크' 카테고리의 다른 글
스프링에서 지원하는 부가 기능 (0) | 2021.10.12 |
---|---|
메이븐, 스프링STS (0) | 2021.10.11 |
스프링 트랜잭션 (0) | 2021.10.08 |
스프링과 마이바티스 연동 (0) | 2021.10.08 |
마이바티스 프레임워크 (0) | 2021.10.08 |
Comments