Rest Architectural 스타일은 Restful 서비스의 일부를 핵심 개념 요소로 정의합니다.
예를 들어 서버에 Rest 요청을 하는 동안 서버가 반환하는 정보를 Resource 라고합니다.
RESTful 웹 서비스의 핵심 개념 요소를 간략히
요소 | 예 |
자원(Resource) | 클라이언트가 요청할 수있는 서버에 저장된 정보. 날씨 정보이거나 직원 세부 정보 일 수 있습니다. |
리소스 식별자(Resource Identifier) | 이제 리소스가 정의되었으므로 리소스를 고유하게 식별해야합니다. 이것은 실제로 완전한 URL입니다. |
표현(Representation) | 리소스는 실제 데이터입니다. 이제이 데이터는 XML, HTML 또는 간단한 텍스트로 표현 될 수 있습니다. 그것이 표현이라고 불리는 것입니다. |
표현 메타 데이터 | 클라이언트가 특정 표현 (XML 또는 HTML 등)에 제공된 리소스를 지정하고 처리하려면 일부 추가 데이터 (메타 데이터)가 요청에 전달되어야합니다. |
자원
Restful 아키텍처의 리소스는 서버에서 사용할 수 있는 자산입니다.
예를 들어 날씨 API ( http://restapi.demoqa.com/customer-api/v1/ping/weather?city=hyderabad )는 지정된 도시에 대한 날씨 정보를 반환합니다. 이 경우 하이데라바드. 반환 된 날씨 데이터는 서버의 리소스입니다.
자원은
- 일시적인(Temporal)
- 공전(Static)
시간적 자원은 시간에 따라 계속 변하는 예를 들어 날씨 같은자원입니다.
정적 리소스는 오랜 시간 동안 일정하게 유지되는 리소스입니다.
예를 들어 지금 읽고 있는 정적 텍스트가 포함된 웹 페이지와 마찬가지로 서버의 정적 리소스 일 수 있습니다..
리소스 식별자(Resource Identifier)
서버의 모든 리소스는 고유하게 식별 가능해야 합니다.
이를 위해 모든 리소스에는 해당 리소스에 액세스 하는 데 사용할 수 있는 고유 URL이 있습니다.
예를 들어 클라이언트가 전화를 거는 위치를 반환할 수 있는 웹 서비스를 호스팅 했습니다.
URL : http://restapi.demoqa.com/utilities/locationutil/mylocation
귀하의 위치에 액세스 하려면 위의 URL을 눌러야 한다는 것을 알 수 있습니다.
여기에서 리소스 는 사용자의 위치이며 여기 에 액세스 하는 고유 한 방법은 리소스 식별자 (URL)입니다.
여기서 주목해야 할 중요한 점은 리소스가 반드시 정적 인 정보가 아니라는 것입니다.
예를 들어, 이 URL은 미국 사람이 클릭했을 때 자신의 위치를 제공하고 인도에서 클릭하면 인도의 일부 위치를 제공합니다.
위치는 런타임에 계산되어 클라이언트로 다시 전송됩니다.
동적 정보조차 리소스 라고도합니다 .
비슷한 예는 노출하는 날씨 API입니다. 다음은 날씨 API의리소스 식별자입니다.
http://restapi.demoqa.com/utilities/weather/city/hyderabad
여기에서도 모든 도시가 고유 한 리소스 식별자를 수 있음을 알 수 있습니다.
예를 들어 http://restapi.demoqa.com/utilities/weather/city/redmond 가 레드몬드의 날씨 정보를 제공합니다.
표현 및 표현 메타 데이터(Representation and Representation Metadata)
이제 리소스 와 리소스 식별자에 대해 머리를 정리했으므로리소스 표현 이 무엇을 의미 하는지 이해할 때입니다.
리소스의 표현은 데이터에 대해 설명하는 데이터와 메타 데이터입니다.
요청 및 응답의 엄격한 의미에서 메타 데이터는 응답 본문의 형식 유형을 설명하는 일부 헤더입니다.
예를 들어 리소스 메타 데이터는 응답 본문의 내용이 Json 형식이라고 말할 수 있습니다.
이는 고객에게 데이터 해석 방법을 알려줍니다.
샘플 API의 예를 들어 보겠습니다.
Weather API에 대한 요청 및 응답 헤더가 어떻게 보이는지 확인해 보겠습니다.
리소스 식별자 : http://restapi.demoqa.com/utilities/weatherfull/city/hyderabad
이 API는 도시의 날씨 세부 정보와 거래 중에 전송된 요청 및 응답 데이터를 제공합니다.
응답에서 Content-Type 헤더를 찾으십시오 .
Content-Type 헤더 의 값은 application / json이 됩니다.(charset = utf-8.)
응답 본문의 데이터가 Json 형식이 될 것이라고 이미 짐작했을 것입니다.
페이지 끝에 있는 응답 본문을 보면 확인할 수 있습니다.
다음은 응답의 두 가지 중요한 부분을 가리키는 이미지입니다.
마찬가지로 동일한 XML 기반 날씨 웹 서비스의리소스 식별자에 도달하면 XML로 표시 되는 동일한 데이터를 얻을 수 있음을 알 수 있습니다.
의미하는 바는 Resource Representation을 Json에서 XML로 변경 했다는 것입니다.
같은 줄에서 데이터 표현을 XML에서 HTML로 변경할 수도 있습니다.
따라서 아키텍처 RE 표현 S tate T ransfer(REpresentation State Transfer)의 이름입니다.
XML 기반 서비스 : http://restapi.demoqa.com/utilities/weatherxml/city/hyderabad
'API Test' 카테고리의 다른 글
REST 란 무엇입니까? (0) | 2020.09.05 |
---|---|
HTTP 응답(HTTP Response)이란 무엇입니까? (0) | 2020.09.04 |
HTTP 요청(HTTP Request)이란 무엇입니까? (0) | 2020.09.03 |
클라이언트 서버 아키텍처(Client Server Architecture) (0) | 2020.09.02 |