【Web Design The Missing Link】Appendix: Other Approaches to Representing Links

Chapter Resource


Representational State Transfer (REST), Roy Thomas Fielding2000 RESTful API Design Webinar, 2nd edition, Brian Mulloy, 2011
Apigee BlogAPI Craft Google Group
 

Chapter Appendix: Other Approaches to Representing Links


우리가 알고 있는 JSON의 링크를 나타내는 다음 가장 간단한 방법은 다음과 같다.
“owner”: {“href”: “https://dogtracker.com/persons/98765432”}

이 모드의 장점은 - 이 모드만 알면 - 외부 정보를 포함하지 않고 URL 값을 가진 모든 속성을 찾을 수 있다는 것입니다.또한 추가 링크 속성을 배치할 위치를 제공합니다.Terrifically Simple JSON 프로젝트는 이 모드를 더 완전하게 지정하려는 시도입니다.
사용된 다른 스타일은 JSON의 링크를 나타냅니다.
“links”: 
[
	{
		“href”: “https://dogtracker.com/persons/98765432”, 
		“rel”: “owner”
	}
]

이전 스타일과 마찬가지로 이 스타일의 장점은 속성 소유자의 값이 URL이라는 것을 알고 있으며, 이 값을 확인하거나 외부 메타데이터가 필요하지 않다는 것입니다. (날짜와 다른 데이터 형식에 대해서도 비슷한 작업을 수행할 수 있습니다.)단점은 더욱 복잡하고 속성(소유자)의 이름은 현재 rel 속성의 값으로 사칭 오른쪽에 표시되며, 속성 이름은 보통 JSON의 왼쪽에 있는 것이 아니다.
당신이 이런 스타일을 좋아하든 안 좋아하든 우리는 당신에게 결심을 내리게 할 것입니다.그것은 JSON-hyperschema 규범에서 표준화되었거나 적어도 지정되었다.이 스타일을 사용한다면, JSON뿐만 아니라 JSON (JSON 하이퍼모드 규범에 의해 정의된 것) - 유니버설 클라이언트가 링크를 설명할 수 있도록 하는 특수한 미디어 형식을 사용해야 한다고 생각합니다.
링크를 나타내는 다른 형식은 다음과 같습니다.
“owner”: 
{
	“dataType”: “URI”,
	“value”: “https://dogtracker.com/persons/98765432”
}

이런 형식은 우리에게 충분한 의의가 있기 때문에 우리는 전체 프로젝트에서 그것을 사용했다.양쪽 끝에서 JSON 정렬화 및 반정렬화를 확장하여 문자열이 아닌 URI 객체를 반환할 수 있습니다. 이 모드를 자동으로 사용하는 데 도움이 됩니다.이런 방법은 상당히 효과가 있지만, 프로젝트의 모든 사람들이 프로그래밍할 때 이 동작을 정확하게 실행하는 것을 잊어버리고, 실수로 간단한 문자열을 URL에 사용하면 오류를 초래할 수 있다.결국 우리는 자신의 프로그래밍 본능에 대항하는 것을 멈추고 간단한 문자열을 사용하기로 결정했다.이 형식을 사용하면 특수한 미디어 형식을 다시 고려해야 합니다. 
또 다른 몇 가지 규범을 선택할 수 있다. 이런 규범들은 더욱 복잡한 링크 표현 방법을 정의한다. 예를 들어 Siren, HAL, JSON-LD, RDF/JSON, Collection+JSON, Hydra 등이다.이들 중 하나하나는 링크를 어떻게 표시하는가가 아니라 중요한 기능과 개념을 증가시켰다.

좋은 웹페이지 즐겨찾기