2016-08-05 13 views
0

현재 API 응답에서 관련 리소스에 대한 링크를 포함하여 HATEOAS를 약간 수행하려고하는 API를 작성 중입니다.REST 및 HATEOAS : 속성의 링크

일부 지역에서는 기사 이미지와 같은 링크를 (ab?) 사용했습니다. 따라서, 예를 들어 문서 리소스는 다음과 같습니다 당신이 볼 수 있듯이

{ 
    "type": "article", 
    "id": "1", 
    "links": { 
    "self": "/api/articles/1", 
    "image": "/files/b4d7802c-9cbb-4b65-9181-28cb547d2796" 
    }, 
    "attributes": { 
    "title": "My first blog entry", 
    "slug": "first", 
    "created_at": "2016-08-01T00:00:00Z" 
    } 
} 

, 나는 links 해시 기사의 이미지에 대한 링크를 추가했습니다. 생각은 다음과 같습니다. URL이므로 아마 거기에 있어야합니다. 그러나 기사 이미지가 기사의 속성이라고 주장 할 수도 있습니다.

그럼, 내 질문 : URL이 하이퍼 미디어 링크 또는 속성인지 판단하는 방법을 다루는 합의 된 지침이 있습니까? 어느 방법의 장점/단점은 무엇입니까?

답변

1

URL이 하이퍼 미디어 링크인지 또는 속성인지 판단하는 방법을 다루는 합의 된 지침이 있습니까?

URL은 표현의 미디어 유형에 의해 정의 된 링크 요소에 나타나면 하이퍼 미디어 링크입니다.

의심 스럽다면 레퍼런스 구현 인 월드 와이드 웹을 살펴보십시오. HTML 파일의 URL은 언제 링크됩니까? 요소, 영역 요소, 링크 요소; 모두 spec에 있습니다. p 요소의 중간에 올바른 형식의 URL에 대한 프로덕션 규칙과 일치하는 문자 시퀀스? 링크가 아닙니다.

여기에, 또는 확장 정의에 필딩 자원을 나타내는 및 응용 프로그램 상태를 구동하기 위해 사용되는 미디어 타입 (들)을 정의하는 거의 모든 설명의 노력을 지출해야 2008

휴식 API에 무슨 말을했다입니다 관계 이름 및/또는 기존 표준 미디어 유형에 대한 하이퍼 텍스트 사용 가능 마크 업을 지원합니다.

즉, 링크와 속성의 차이가 명확한 하이퍼 미디어 형식을 사용해야합니다.

이제 구별을 잘 나타내는 표현이 있다고 가정하면 어떤 것을 사용해야합니까? 그 답은 사용자의 사용 사례에 적합한 조합으로 사용해야한다는 것입니다.

링크를 만들면 다른 식별 가능한 리소스에 대한 관계를 알릴 것으로 예상되는 표현에 대해 의미가 있습니다. 즉, 당신이 짐작할 수 있듯이 웹상에서 그리고 HATEOAS를 사용할 때 일반적인 경우입니다.

상태로 URL을 사용한다고 생각되는 유스 케이스는 기본적으로 뭔가를 편집하고있는 경우입니다. 프로필을로드하여 내 홈페이지를 변경할 수있는 경우 해당 표현 이전 홈페이지를 국가로 포함시킬 가능성이 있습니까?

물론 업데이트 프로필 링크 관계에 속한다고 주장 할 수도 있습니다. 다시 한 번, "웹 페이지에서 어떻게 할 것입니까?"에 대한 가정을 확인해야합니다. 경험적.

+0

자세한 답변을 보내 주셔서 감사합니다. 불행히도 이미지는 전혀 언급하지 않았습니다.내가 모은 것에서는 기사 이미지와 비슷하게 (관련이 있지만 완전히 자체 포함 된 리소스처럼) 링크에서 참조되어야합니다. (HTML에서는 이미지 태그를 사용하는 것과 비슷합니다.) – Franz