하이퍼텍스트 응용 프로그램 언어
Hypertext Application Language하이퍼텍스트 응용 언어(HAL)는 JSON 또는 XML 코드 내의 외부 자원에 대한 링크와 같은 하이퍼미디어 정의를 위한 인터넷 드래프트("진행 중인 작업") 표준 규약이다(그러나, 최신 버전의 HAL 인터넷-대조문은 2016년 11월 12일 만료됨).이 표준은 JSON과[1] 함께 사용하기 위해 2012년 6월에 처음 제안되었고 그 이후 JSON과 XML의 두 가지 변형으로 이용 가능해졌다. 관련 MIME의 두 종류는 application/hal+xml과 media type: application/hal+json이다.[2]
HAL은 프로젝트 구조화 방법에 대한 어떠한 요건도 부과할 필요가 없도록 하여 사용이 간편하고 여러 도메인에 걸쳐 쉽게 적용할 수 있도록 만들어졌다.HAL은 이러한 최소한의 영향 접근방식을 유지함으로써 개발자들이 HAL을 사용하는 API에 쉽게 통합될 수 있는 범용 라이브러리를 만들 수 있도록 했다.[citation needed]
HAL을 채택한 API는 오픈 소스 라이브러리의 사용을 단순화하고 JSON 또는 XML을 사용하여 API와 상호작용할 수 있도록 한다. 그 대안은 개발자들이 다른 외국 포맷을 사용하는 방법을 배우도록 하는 독점적 포맷을 개발해야 할 것이다.[3]
컨벤션
HAL은 다음 두 가지 개념에 기초하여 요소를 나타내는 방식으로 구성된다.리소스 및 링크.리소스는 URI 링크, 내장 리소스, 표준 데이터(JSON 또는 XML) 및 비 URI 링크로 구성된다.링크에는 링크 이름('rel'이라 함)과 함께 대상 URI가 있으며, 사용 중단 및 콘텐츠 협상을 염두에 두고 설계된 선택적 속성이 있다.[3]
예
일반 리소스
{ "_vmx": { "자신": { "흐레프": "http://example.com/api/book/hal-cookbook" } }, "id": "할쿡북", "이름": "HAL 쿡북" } 임베디드 리소스
{ "_vmx": { "자신": { "흐레프": "http://example.com/api/book/hal-cookbook" } }, "_vmx": { "권위자": { "_vmx": { "자신": { "흐레프": "http://example.com/api/author/shahadat" } }, "id": "shahadat", "이름": 샤하닷 호사인 칸, "homepage": "http://author-example.com" } }, "id": "할쿡북", "이름": "HAL 쿡북" } 컬렉션
{ "_vmx": { "자신": { "흐레프": "http://example.com/api/book/hal-cookbook" }, "다음": { "흐레프": "http://example.com/api/book/hal-case-study" }, "prev": { "흐레프": "http://example.com/api/book/json-and-beyond" }, "첫 번째": { "흐레프": "http://example.com/api/book/catalog" }, "마지막": { "흐레프": "http://example.com/api/book/upcoming-books" } }, "_vmx": { "권위자": { "_vmx": { "자신": { "흐레프": "http://example.com/api/author/shahadat" } }, "id": "shahadat", "이름": 샤하닷 호사인 칸, "homepage": "http://author-example.com" } }, "id": "할쿡북", "이름": "HAL 쿡북" } 참고 항목
참조
- ^ Kelly, Mike (7 June 2012). "JSON Hypertext Application Language". IETF. Retrieved 16 October 2018.
- ^ Richardson, Leonard; Ruby, Mike Amundsen ; foreword by Sam (2013). "7". RESTful Web APIs (First ed.). Sebastopol, CA: O'Reilly. ISBN 978-1-4493-5806-8.
- ^ a b Kelly, Mike (2011-06-13). "HAL - Hypertext Application Language A lean hypermedia type". Retrieved 23 July 2014.
