REST API에서 링크 rel =“self”는 무엇입니까?


11

나는 종종 HTML 문서에서 다음을 본다

<link rel="self" href="http://example.com/something">

또는 JSON에서 이와 같이

 link: {
     rel="self",
     href="http://example.com/something"
 }

또는 XML로

 <atom:link rel="self" href="http://example.com/something" />

그래서 몇 가지 질문이있었습니다.

  1. 이 링크를 왜 포함시켜야합니까? 어떤 이점이 있습니까? (이것은 단지 "좋은 습관"부적이 아니라 그 이유가 있다고 말씀해주십시오)
  2. 클라이언트에서이 링크를 어떻게 이용해야합니까? 이 링크의 사용 사례는 무엇입니까?
  3. 언제이 링크를 사용 해서는 안됩니까? 그것을 포함시키는 것이 언제 무의미합니까?

3
"이 페이지를 즐겨 찾기에 여기를 클릭하십시오"는 "self"참조를 활용할 수있는 유스 케이스입니다. 더 일반적으로 REST는 상태 비 저장이므로 서버는 요청이 어디에서 왔는지 알 수 없으므로 리턴되는 페이지가 자체 URI를 알아야 할 가능성이 있습니다.
Roger

이 의견이 꽤 좋은 답변이 될 것 같습니다 :)
Mike Chamberlain

답변:


8

자체 참조이므로 클라이언트는 IRI ( http://example.com/something)가 표시에 관한 자원의 식별자임을 알 수 있습니다.

자원 예를 들어 여러 개의 ID를 가질 수 있습니다 때 중요 할 수 http://example.com/users/1http://example.com/users/1?fields="name"같은 자원을 식별 할 수 있지만, 그들에 GET 다른 표현을 발생할 수 있습니다.

HAL과 같은 미디어 유형별로이를 사용하여 포함 된 리소스를 식별 할 수 있습니다. 예를 들면 다음과 같습니다.

{
    "nick": "John",
    "_embedded": {
        "cars": {
            "items": [
                //...
            ],
            "_links": {
                "self": {
                    "href": "http://example.com/users/john/cars"
                }
            }
        }
    },
    "_links": {
        "self": {
            "href": "http://example.com/users/john"
        }
    }
}

IRI 란 무엇입니까? 그 en.wikipedia.org/wiki/IRI ?
Marian Paździoch

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.