API
Apllication Programming Interface 의 약자입니다.
하지만 단순히 Apllication 뿐만 아니라, 사용자들이 사용할수있는 interface, 함수들을 포함하는 의미입니다.
서버입장에서 API란, 클라이언트들이 사용하는 URL을 뜻한다고 할 수 있습니다.
Restful
Rest의 성격이 가득하다 라는 의미입니다
Rest
Representational State Transfer 의 약자입니다.
"무언가를 대표하는,나타내는 상태를 전송한다" 라는 의미입니다
즉, 실제로 어떤 resource 에대한 상태를 전송하는 것입니다.
Restful System의 6가지 요소
1. Client-Server architecture
서버는 클라이언트가 브라우저뿐만 아니라 다양한 어플리케이션에 데이터를 제공할 수 있는 아케텍쳐를 유지해야한다.
2. Statelessness (http를 사용한다면 기본적으로 적용되는 요소)
하나의 요청이 다른 요청과 연관이 되서는 안된다.
3. Cacheability (http를 사용한다면 기본적으로 적용되는 요소)
캐시가 가능하다면 캐시를 할 수있는 것으로 디자인해야한다.
4. Layered System
서버가 얼마나 많던지, 중간 서버가있는지 상관없이 클라이언트는 하나의 API를 이용할 수 있어야한다.
5. Code on demand (선택)
클라이언트가 원한다면 클라이언트에서 수행해야하는 코드를 서버로 보낼 수 있다.
6. Uniform interface (Restful을 경정하는 중요한 요소)
- 클라이언트에서 자원의 형태가 언떤지 알 수 있어야하고, 클라이언트가 이해할 수 있는 형식으로 주어야한다. (html, json, xml...)
- 클라이언트가 받는 데이터는 어떤 형식인 지 알 수 있어야한다.(header에 Content-Type 을 지정해주는 것 처럼)
- 서버에서 받은 리소스에 대해서, 다른 처리는 어떻게 할 수있는지 알수 있어야한다.(get을햇다면 post,put,delete.. 등은 어떻게 요청할 수 있는지에 대한 링크 정보를 제공받아야 함)
반응형
'Archive' 카테고리의 다른 글
[2] express 에러 핸들링 (0) | 2022.04.03 |
---|---|
[1] express 요청,응답,미들웨어 (0) | 2022.04.03 |
[21] JSON 통신 (0) | 2022.04.03 |
[20] node의 http모듈을 사용해서 서버 만들어보기 (0) | 2022.04.03 |
[19] Header (0) | 2022.04.03 |