HAL(Json Hypertext Application Language)
HAL은 JSON 또는 XML 코드 내의 외부 리소스 에 대한 링크와 같은 일관적이고 쉬운 하이퍼미디어를 정의하기 위한 규칙입니다.
HAL을 채택하면 API를 탐색할 수 있게 되며 API 자체 내에서 해당 문서를 쉽게 검색할 수 있습니다. 간단히 말해서 API를 사용하기가 더 쉬워지고 클라이언트 개발자에게 더 매력적으로 느껴질 것입니다.
HAL을 채택한 API는 대부분의 주요 프로그래밍 언어에 사용 가능한 오픈 소스 라이브러리를 사용하여 쉽게 제공되고 사용될 수 있습니다. 또한 다른 JSON처럼 처리할 수 있을 정도로 간단합니다.
🏷️ HAL Explorer
HAL Explorer는 HAL을 사용하는 RESTful API 라면 이것을 통해여 API 를 테스트하거나 실행해볼 수 있습니다. 또한 기술자가 아닌 사람도 PostMan 과 같은 툴을 쓰지 않더라도 Hal explorer 를 통하여 API 를 사용할 수 있습니다.
✅ Dependency
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-explorer</artifactId>
</dependency>
✅ 주소
http://localhost:8080/explorer/index.html
🏷️ 특성
1. HAL 규칙은 Resources 및 Links 라는 두 가지 간단한 개념을 표현하는 데 중점을 둡니다.
Resources
- 링크(URI에 대한)
- 내장된 리소스(즉, 그 안에 포함된 다른 리소스)
- 상태(늪지 표준 JSON 또는 XML 데이터)
Links
- 대상(URI)일명 관계.
- 'rel'(링크 이름)
- 지원 중단, 콘텐츠 협상 등에 도움이 되는 몇 가지 다른 선택적 속성
2. HAL에는 JSON 및 XML 변형에 대한 미디어 유형이 있습니다.
🏷️ 예시
📖 Reference
'코딩 공부 > web & Java' 카테고리의 다른 글
[JPA] @Entity는 기본 생성자를 왜 가져야 하는가? (0) | 2023.11.22 |
---|---|
[Spring] Response Customizing (1) | 2023.11.20 |
[Spring] Actuator (0) | 2023.11.16 |
[Spring] 직렬화(Serialize) (1) | 2023.11.15 |
[Spring] HATEOAS (1) | 2023.11.14 |