Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- paging
- values()
- javaservlet
- calendar
- joinfetch
- jscalendar
- 대량쿼리
- 페이징
- 페치조인
- springflow
- 자바서블릿
- JPA
- jQuery값전달
- 프로젝트생성
- 제너릭
- javascriptcalendar
- Generic
- fullcalendar
- 제네릭
- Hibernate
- jQueryUI
- namedQuery
- jQuery값전송
- 벌크연산
- 엔티티직접사용
- LIST
- 스프링데이터흐름
- JPQL
- fetchjoin
- JQuery
Archives
- Today
- Total
가자공부하러!
HAL(Hypertext Application Language) 본문
참고 : https://tools.ietf.org/html/draft-kelly-json-hal-08
참고 : http://stateless.co/hal_specification.html
참고 : https://en.wikipedia.org/wiki/Hypertext_Application_Language
1. HAL?
1.1. 정의
- JSON, XML 코드 내의 외부 리소스에 대한 링크와 같은 하이퍼 미디어를 정의하기 위한 규칙
- 프로젝트 구성 방식에 대한 요구 사항을 부과 할 필요가 없기 때문에 여러 도메인에 쉽게 적용 가능
> HAL을 사용하는 모든 API에 쉽게 통합할 수 있는 범용 라이브러리를 만들 수 있음
1.2. 특성
- 리소스와 링크라는 두 가지 개념을 기반으로 요소를 표현
> 리소스 : URI 링크, 임베디드 리소스, 표준 데이터, 비 URI 링크 등
> 링크 : 대상 URI, 링크 이름(rel), optional properties 등
- HAL이 갖는 미디어 타입
> application/hal+json
> application/hal+xml
1.3. 장점
- API 자체에서 API 문서를 쉽게 찾을 수 있음(Self-Descriptive Message)
2. HAL 예시
{
"_links" : {
"self" : {
"href" : "/api/exam"
},
"next" : {
"href" : "/api/exam/next"
}
},
"id" : "hal-exam",
"name" : "HAL 예시"
}
- "_links"가 링크 정보를 갖는다.
- "self", "next"는 링크의 이름(rel, relation)이다.
요약 : 보통 쓰던 JSON에 링크정보를 더한 틀 정도?
'공부 > 개념 정리' 카테고리의 다른 글
프레임워크와 라이브러리의 차이점 (0) | 2019.05.21 |
---|---|
Pipeline (파이프라이닝) (0) | 2019.05.18 |
Comments