답변:
Resource 는 Endpoint 의 RESTful 하위 집합입니다 .
엔드 포인트 자체로는 서비스가 액세스 할 수있는 위치입니다 :
https://www.google.com # Serves HTML
8.8.8.8 # Serves DNS
/services/service.asmx # Serves an ASP.NET Web Service
자원 이 이해하기 인간에 대한 쉽기 때문에 하나 이상의 명사가, 네임 스페이스 방식으로 표현, 제공되는에 말한다 :
/api/users/johnny # Look up johnny from a users collection.
/v2/books/1234 # Get book with ID 1234 in API v2 schema.
위의 모든 사항은 서비스 엔드 포인트로 간주 될 수 있지만 최하위 그룹 만 리소스로 간주되며 RESTful하게 말할 수 있습니다. 최상위 그룹은 제공하는 콘텐츠와 관련하여 표현력이 없습니다.
REST 요청은 명사 (자원)와 동사 (HTTP 메소드) 로 구성된 문장 과 같습니다.
GET
(방법) 사용자 이름이 johnny
(자원)입니다.DELETE
(방법) 아이디가있는 책 1234
(자원)엔드 포인트는 일반적으로 서비스를 의미하지만 리소스는 많은 것을 의미 할 수 있습니다. 사용되는 컨텍스트에 따라 달라지는 리소스의 예는 다음과 같습니다.
당신을 도울 수있는 것 :
도서관은 귀중한 자료였으며 종종 그것을 활용했습니다.
자원은 생명을 유지하는 데 유용한 물과 나무와 같은 천연 물질입니다.
[pl] 지구는 자원이 제한되어 있으며, 재활용하지 않으면 재활용합니다.
자원은 또한 필요할 때 사용할 수있는 돈이나 소유물과 같은 가치있는 것들입니다.
[pl] 정부는 필요한 교사 수를 고용 할 자원이 없습니다.
정의에 의한 자원 이라는 용어 는 많은 미묘한 차이가 있습니다. 그것은 모두 사용 된 컨텍스트 에 달려 있습니다.
자원 과 엔드 포인트 라는 용어 는 종종 동의어로 사용됩니다. 그러나 실제로 그들은 같은 것을 의미하지 않습니다.
엔드 포인트 라는 용어 는 요청하는 데 사용되는 URL에 중점을 둡니다 . 리소스
라는 용어 는 요청에 의해 반환되는 데이터 세트 에 중점을 둡니다 .
이제 여러 다른 엔드 포인트 에서 동일한 자원에 액세스 할 수 있습니다 .
또한 쿼리 문자열에 따라 동일한 끝 점이 다른 리소스를 반환 할 수 있습니다 .
몇 가지 예를 보자.
다른 엔드 포인트 의 다음 예를 살펴보십시오 .
/api/companies/5/employees/3
/api/v2/companies/5/employees/3
/api/employees/3
그들은 분명히 주어진 API에서 모두 동일한 리소스 에 액세스 할 수 있습니다 .
또한 기존 API를 완전히 변경할 수 있습니다. 이로 인해 완전히 새롭고 다른 URL을 사용하여 동일한 이전 자원에 액세스하는 새 엔드 포인트가 발생할 수 있습니다.
/api/employees/3
/new_api/staff/3
엔드 포인트가 콜렉션을 리턴하면 쿼리 문자열을 사용하여 검색 / 필터링 / 정렬을 구현할 수 있습니다. 결과적으로 다음 URL은 모두 동일한 엔드 포인트 ( /api/companies
)를 사용하지만 다른 자원 (또는 자원 콜렉션 은 정의 자체로 자원 임)을 리턴 할 수 있습니다 .
/api/companies
/api/companies?sort=name_asc
/api/companies?location=germany
/api/companies?search=siemens
아마도 내 것이 큰 대답은 아니지만 여기에 간다.
HTTP를 통해 진정으로 RESTful 웹 서비스로 더 많은 작업을 수행했기 때문에 명확한 정의가 없으므로 엔드 포인트라는 용어를 사용하지 못하게하고 대신 리소스 및 리소스 위치 인 REST의 언어를 사용하려고했습니다.
내 생각에 끝점은 TCP 용어입니다. URL의 일부가 수신 서버를 식별하기 때문에 HTTP로 혼동됩니다.
따라서 리소스는 새로운 용어가 아닙니다. 엔드 포인트가 항상 잘못 사용 된 것으로 생각하고 REST 스타일 을 API 스타일 로 생각하면서이를 실현하고 있습니다.
편집하다
나는 이것에 대해 블로그했다.
https://medium.com/@lukepuplett/stop-saying-endpoints-92c19e33e819
에 따르면 https://apiblueprint.org/documentation/examples/13-named-endpoints.html는 A는 자원 반면, 예를 들어 / 고객 / 30654 / 주문 - 지정된 개체의 저장의 "일반"장소 엔드 포인트는 콘크리트 작업입니다 주어진 리소스를 통한 (HTTP 메소드). 따라서 하나의 자원에 여러 개의 엔드 포인트가있을 수 있습니다.
사용자, 미션 및 보상 포인트 정보가있는 서버를 고려하십시오.
출처 : API 엔드 포인트 및 리소스
1. 자원 설명 "리소스"는 API가 반환 한 정보를 나타냅니다.
2. 종점과 방법 엔드 포인트는 자원에 액세스하는 방법을 나타내며 메소드는 자원과의 허용 된 상호 작용 (예 : GET, POST 또는 DELETE)을 나타냅니다.
추가 정보 : 3. 매개 변수 변수 변수는 응답에 영향을주기 위해 엔드 포인트와 함께 전달할 수있는 옵션입니다 (예 : 응답 형식 또는 반환 된 금액 지정).
4. 요청 예제 요청 예제에는 엔드 포인트를 사용한 샘플 요청이 포함되어 있으며 일부 매개 변수가 구성되어 있습니다.
5. 응답 예제 및 스키마 응답 예제는 요청 예제의 샘플 응답을 보여줍니다. 응답 스키마는 응답에서 가능한 모든 요소를 정의합니다.
소스- 참조 링크