-
13. Spring RESTful API개발자 수업/Spring 2022. 1. 12. 17:15
1. Open API (Application Programming Interface)
1) 개방형 API
2) API : 응용 프로그램 개발할 때 사용하는 인터페이스
3) 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스임
4) 대부분 Open API는 REST 방식으로 지원됨
2. REST (Representational Safe Transfer)
1) HTTP URI + HTTP Method
2) HTTP URI를 통해 제어할 자원(Resource)을 명시하고, HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍처임
HTTP Method CRUD
-----------------------------------------------
POST Create(Insert)
GET Read(Select)
PUT Update or Create
DELETE Delete
3. RESTful API
1) HTTP와 URI 기반으로 자원에 접근할 수 있도록 제공하는 애플리케이션 개발 인터페이스
2) 비교
기존 웹 접근 방식 RESTful API 지원 방식
------------------------------------------------------------------------------------
글 읽기 GET /list.do?no=500&name=java GET /bbs/java/500 조회(Select)
글 등록 POST /insert.do POST /bbs/java/500 추가(Create)
글 삭제 GET /delete.do?no=500&name=java DELETE /bbs/java/500 삭제(Delete)
글 수정 POST /update.do? PUT /bbs/java/500 수정(Update)
3) REST 방식으로 요청하는 URI 형식
메서드 URI 설명
-----------------------------------------------------------------------------------
POST /boards + 데이터 새 글 등록하기
GET /boards/311 311번 글 조회하기
PUT /boards/311 + 데이터 311번 글 수정하기
DELETE /boards/311 311번 글 삭제하기
4. JSON / XML
1) JSON
- 경량의 DATA 교환 방식
- JavaScript에서 객체를 만들 때 사용하는 표현식을 의미함
- 현재는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용함
5. @RestController
1) 스프링4에서 @RestController 어노테이션 이용해 REST 방식의 데이터 처리 지원함
2) 문자열 전달하기
3) VO 객체 전달하기
4) 컬렉션 객체 전달하기
5) Map 전달하기 (map 데이터를 JSON으로 전송함)
6. @PathVariable
1) 브라우저에서 요청 URL로 전달된 매개변수를 가져올 수 있음
7. RESTful Controller를 위한 어노테이션
1) Spring MVC에서는 클라이언트에서 전송한 XML이나 JSON 데이터를 Controller에서 Java 객체로 변환해서 받을 수 있는 기능(수신) 제공함
2) @RequestBody
- HTTP Request Body(요청 몸체)를 Java 객체로 전달받을 수 있음
- 브라우저에서 전달되는 JSON 데이터를 객체로 자동 변환해줌
- JSON 데이터를 VO 객체로 자동 변환함
3) @ResponseBody
- Java 객체를 HTTP Response Body(응답 몸체)로 전송할 수 있음
- 컨트롤러의 특정 메서드에 적용하면 --> JSP가 아닌 텍스트나 JSON으로 결과를 전송할 수 있음
4) ResponseEntity 클래스 사용해서 응답하기
- @RestController는 별도의 View를 제공하지 않은 채 데이터를 전달함
-> 전달과정상 예외 발생가능성이 있음
- 예외에 대해 제어가 필요한 경우 ResponseEntity 클래스를 사용함
5) HttpHeaders 클래스 이용
- ResponseEntity로 전송할 데이터의 종류와 한글 인코딩을 설정할 수 있음'개발자 수업 > Spring' 카테고리의 다른 글
14. 스프링 게시판 (0) 2022.01.15 12. 스프링 지원 기능들 (0) 2022.01.12 11. 타일즈(tiles) (0) 2022.01.12 10. 메이븐과 스프링 (0) 2022.01.07 9. 스프링 어노테이션 (0) 2022.01.04