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로 전송할 데이터의 종류와 한글 인코딩을 설정할수 있음.
'Web > Spring' 카테고리의 다른 글
Spring(13) - Spring 게시판 (0) | 2022.01.29 |
---|---|
Spring(11) - 타일즈 & Spring 지원 기능들 (0) | 2022.01.29 |
Spring(10) - Maven & Spring (0) | 2022.01.29 |
Spring(9) - Spring Annotation (0) | 2022.01.29 |
Spring(8) - Spring Transaction (0) | 2022.01.29 |
댓글