-
RESTful System (REST API를 잘 만드는 방법)CS&Network 2022. 9. 1. 16:06
오늘은 REST API를 잘 만드는 6가지 방법에 대해 알아보겠습니다.
1. Client-server architecture(클라이언트 서버 아키텍쳐)
서버는 클라이언트가 브라우저이든, 모바일이던지 브라우저 뿐만 아니라 다양한 어플리케이션에 데이터를 제공할 수 있는 아키텍쳐를 유지해야 합니다.
2. Statelessness
State가 없는것을 유지해야 합니다. 즉 하나의 요청이 다른 요청과 연결되는 이런 State가 있는것이 아니라 State가 없는 상태로 서버를 디자인 해야 합니다.
3. Cacheability
Cash가 가능하다면 Cash를 할 수 있는 것으로 디자인 해야 합니다.
4. Layered System
레이어드 시스템을 이요해서 클라이언트가 서버에게 얼마나 많은 서버들이 있는지, 서버 사이에 게이트서버가 있든지 없든지 상관하지 않고, 공통된 서버에서 제공하는 API 하나로 사용할 수 있도록 레이어드 시스템을 만들어야 합닌다.
5. Code on demand(해도되고 안해도 되는 옵션)
클라이언트가 원한다면 클라이언트에서 수행해야 하는 코드를 서버에서 보내줄 수 있게 디자인 해야 합니다.
6. Uniform interface(RESTful API에서 가장 중요)
유니폼 인터페이스에는 4가지 특징이 있습니다
1) Resource Identification in requests
클라이언트 요청에서 서버에 있는 어떤 리소스를, 도메인 데이터를 원하는지 식별할 수 있어야 합니다. 그리고 서버에 어떠한 형태로 저장되어 있든, 클라이언트가 이해할 수 있는 포맷으로 데이터를 보내줘야 합니다.
2) Resource manipulation through representations
서버로부터 받은 해당 도메인을 대표할 수 있는 데이터를 통해서 해당 리소스에 대해서 어떻게 처리할 수 있는지에 대한 모든 정보를 알 수 있게 해야 합니다.
예) 수정이나,삭제를 할때 어떤식으로 요청 할 수 있는지 알 수 있게 해야 합니다.
3) Self-descriptive messages
서버에서 보내는 응답 데이터 안에는 반드시 클라이언트가 이 데이터를 어떻게 처리해야 하는지 설명이 되어 있어야 합니다. 그냥 서버에서 데이터를 보내고 클라이언트가 유추하게 하는 것이 아니라, json형태인지 html인지 등등 어떠한 데이터타입인지에 대해 respons(응답)에서 알려주어야 합니다. (http의 headers에 Content-Type을 지정해주는 것처럼)
4) Hypermedia as the engine of application state(HATEOAS)
하이퍼미디어를 어플리케이션 스테이트 엔진처럼 제공해야 합니다. 우리가 서버에서 URL이 있다면 클라이언트가 서버에 어떤 URL이 있는지 알아야 하고, 적절한 URL로 요청해야 합니다. 잘못된 URL로 요청하면 not found를 받게 됩니다. 그래서 클라이언트에서 신경써서 서버에 URL을 요청해야 합니다. 그렇기에 만약 클라이언트에서 서버에 어떤 URL이 있는지 일일히 찾아보게 하는 것이 아니라, 모든 링크를 제공 할 수 있어야 합니다.
'CS&Network' 카테고리의 다른 글
Optimization(최적화) (0) 2022.08.04 Lighthouse (0) 2022.08.04 REST API란? (0) 2022.06.10 SSR vs CSR (0) 2022.06.10 AJAX 란? (0) 2022.06.10