API (Application Programming Interface)
소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 명령을 받을 수 있는 수단
- 정보를 주고 받는 일종의 형식
- 정보를 요청한는 지정된 형식이 있어야 함
Restful API
- 과거의 SOAP라는 복잡한 형식 대체
- 가장 중요한 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지 그 요청의 모습 자체로 추론이 가능해야 함
URL만 봐도 어떤 요청을 하기 위함인지 파악할 수 있어야 함!
- 'https://domain/1, https://domain/hello ' : 무슨 기능인지 명확히 파악하기 어려움
- https://도메인/classes : class 목록을 받아오는 요청이라는 것을 파악할 수 있음
{
"result":[
{"idx":1, "name":"수학반"},
{"idx":2, "name":"영어반"},
{"idx":3, "name":"국어반"},
{"idx":4, "name":"과학반"},
]
}
- https://도메인/classes/2 : inx가 2인 class를 받아오는 요청이라는 것을 파악할 수 있음
{"idx":2, "name":"영어반"}
- https://도메인/classes/2/student : 2반에 해당하는 학생들의 정보를 요청하는 것을 파악할 수 있음
{
"result":[
{"idx":1, "name":"홍길동1"},
{"idx":2, "name":"홍길동2"},
{"idx":3, "name":"홍길동3"},
{"idx":4, "name":"홍길동4"},
]
}
이렇게 URI만 봐도 무슨 기능인지 파악할 수 있어야 함(직관적이여야 함)
목적에 따라 HTTP method를 구분해서 사용해야함
- CRUD ( CREATE, READ, UPDATE, DELETE)
서버에 Rest API 요청을 보낼 때 HTTP(Hyper Text Transfer Protocol)라는 규약에 따라 전송함.
post, put, patch : body에 정보를 보냄(get, delete보다 많은 정보를 포함할 수 있음)
- 요청의 의도를 쉽게 파악할 수 있도록 HTTP Method도 잘 선택해야 함.
GET : 데이터 요청, 조회
POST : 데이터 추가
PUT, PETCH : 데이터 수정 (PUT : 전체 정보 수정, PETCH : 일부 수정)
DELETE : 데이터 삭제
형식이기 때문에 기술(언어)에 구애받지는 않지만 약속된 대로, 정석 대로 해야하며, URI는 명사로 하자(동사X)
'개발 > Web' 카테고리의 다른 글
[Spring Framework] CORS 적용하기 - @CrossOrigin, <mvc:cors>, Filter (0) | 2022.03.11 |
---|---|
[Web] Received fatal alert: handshake_failure 에러 (0) | 2022.03.08 |
[Spring] Bean 등록 방법 : @Bean vs @Component 차이 (0) | 2022.02.03 |
[Maven] 메이븐 repository에 없는 라이브러리 추가하기 (0) | 2022.02.03 |
[Spring] Spring Boot Admin 사용하기 - Log, Login 적용 (0) | 2022.01.25 |
댓글