일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Intellij
- 자바스크립트 인라인
- 비밀번호 변경 명령어
- 룸북
- 스프링부트
- 개발시작전 자세
- 타임리프와 스프링
- 리눅스
- js
- select
- BindingResult
- Test 룸북 사용하기
- 다른사람 프로젝트 수정전 가져야할 자세
- cmd
- 시퀀스 조회
- JSON
- 타임리프
- 설정
- 명령어
- 함수 인자값 id
- #{..}
- Java
- 추천 사이트
- linux
- 추천 프로그램
- 하모니카 OS 5
- 순서 보장
- it
- 프로젝트 클린
- StringUtils.hasText
- Today
- Total
웹개발 블로그
[Rest API]⭐ Rest 아키텍처 본문
아키텍처 보다는 하나의 규약이라고 생각하자.
RestFUL
Rest : 관심은 데이터 처리 ( 스프링 3.0부터 REST 작업에 최고 수준 지원 제공 )
- JSON 포맷을 선호함.
- http 프로토콜 사용
- SOAP과는 다름
- SOAP : 동작과 프로세싱에 집중
- HTTP의 우수성을 사용
서버에 요청을 하여 정보를 얻는데
요청의 주소(엔드포인트 : URL로 만들어)
RestFul 웹 서비스
핵심은 웹에 개발된 리소스 이용
- Rest API : 소유자의 자원에 접근할 수 있는 API
- Restfult하다 : Rest API를 제공하는 웹 서비
웹 서비스란?
각 어플리케이션끼리 혹은 노드들끼리의 데이터 교환이다.
그 프로토콜을 WEB 표준을 통해 사용한다.
SOAP VS REST (web이라는 플랫폼 위에서 동작하는건 동일하다.)
SOAP : xml포맷, 많은 어플리케이션에게 부담(엄격한 규약 가짐)
REST : json 포맷을 더 많이 씀(xml도 가능함), 더 간편한 대한 제공(요즘날
어플리케이션끼리 혹은 노드끼리 데이터 교환하는데
서로 서로 통신하는것을 서비스라고 한다.
통신 규약을 http 프로토콜을 사용한다는건 web service를 사용한다는거~
웹이 많이 보편화되면 각 노드들의 테이터 교환도 웹을 사용하게되었다.(웹서비스가 보화되었다는걸 알 수 있다)
2000년 초반에 표준화 작업을 xml로 했었는데 이걸 SOAP이라한다.
부족한 부분이 있다보니 더 좋은 오픈소스들이 생기게되고
Reat한 방식이 SOAP을 앞지르게 된다.
지금은 공식 표준인 SOAP보다는 RestFul한 서비스가 보편적으로 많이 사용된다.
HTTP - 전송규약 사용
- 인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 구조의 프로토콜
- 지금은 각 노드들이 http를 사용하는 추세
(db는 drive프로토콜을 사용하지만,
그중 엘라스틱 서치(검색엔진으로 알려져있지만, db와 유사한 부분이 많음)는 http 프로토콜을 사용한다.)
requset/response 모델 사용
- 가벼움
HTTP 메시지
- 헤더와 바디로 나뉨.
HTTP Methods
- 클라이언트 요청의 종류 : 서버는 이 정보를 통해 적당한 응답을 제공
- GET : 자원요청, 일반 웹에서 주로 사용
- POST : Entity를 포함한 자원 요청, 일반 웹에서 주로 사용
- PUT : URL의 자원을 생성, RESTFUL에서 확장시켜서 많이 사용
- DELETE : URL의 자원을 삭제, RESTFUL에서 확장시켜서 많이 사용
- ETC..
대부분에 브라우저는 개발자 툴을 지원한다~
- HTTP 메시지 전송에 대한 정보를 제공한다.
웹의 특징
1. URL : 식별자로 사용
- 컨텐츠에 접근하기 위한 위치 정보
- 주로 요청을 하는 이유는 데이터를 얻기위해서
- 요청의 주소는 엔드포인트라고 하는데 URL로 만들어져 있다.
URL 표기법을 웹에서 사용하고 있다,
URL을 통해 리소스 혹은 컨텐츠에 접근하는 방식을 웹서비스라 한다.
2. RESTFul 기반 웹 서비스
- 2000년 이전에 http프로토콜을 개발한 박사가 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍처를 제안
- 교환되는 데이터가 많아질 수록 빅데이터 이슈, 데이터 자체를 집중한 restful한 방식이 각광받게됨.
- 데이터가 어플리케이션의 왕이됨.
- 스프링 3.0부터 REST 작업에 대한 최고 수준의 자원을 제공.(3.1, 3.2, 4,0에도 계속됨.)
- HTTP 프로토콜로 데이터를 전달하는 프레임워크
- 핵심은 웹에 개발된 리소스 이용
API 데모 사이트
https://hyeonddobbi.tistory.com/403
REST란 무엇인가?
- 2000년에 HTTP프로토콜 저자 중 한명인 박사 논문에 소개
- 기존 웹 서비스들이 http를 적극적으로 활용하지 못한 문제를 해결하기 위해 제안됨.
- http를 보다 http 답게 만들기 위한 방법론으로 보면됨
- 철저히 Resource(데이터로 봐도 무방) 중심적 설계를 중요시함 = 철저하게 데이터 중심적이다.
- HTTP메소드를 적극적으로 사용함.
- Create - POST
- Read - GET
- Update - PUT
- Delete - DELETE
- HTTP 4가지 메소드를 용도에 맞게 사용
Spring - Web MVC에서의 RESTful지원
@Controller : class위에 붙히는 어노테이션, 스프링 컨테이너 위에 생성되는 컴포넌트로 등록하기 위해 지정함.
@RequestMapping("/") <- url을 기재(엔드포인트라고 함).
public class XXController {
@RequestMapping( value ="url", method=POST/GET/DELETE/PUT ) <= url은 반드시 method 방식이 적혀있어야 한다.
@ResponseBody 사용 <= 응답되는 내용을 가공하지 않고 바로 리턴
public String getMehod(){ ...}
}
레이어 시스템(스프링 특징 중 하나)
- 컨트롤러 역할 : request 분석과 메소드를 매핑하고, 매핑한 메소드에서 응답을 수행함. - @Controller
- 실제수행(비즈니스로직)은 Service에서 함. - @Service
- db작업은 dao 혹은 repository라고 불림. - @Repository
🔽스프링 4.3 이후에 매핑하는 방식이 바뀜
@RestController : @Controller + @ResponseBody
@GetMapping : @ RequestMapping(value="/" , method=RequestMethod.GET)
'◆JSON > REST API' 카테고리의 다른 글
[RestFul,Spring] 예제 (0) | 2024.10.24 |
---|