스프링 문서를 보다가 HATEOAS 라는게 나와서
무엇에 쓰는 물건인가 알아보았다.
역시 한글로 정리된게 짱이다.
위 포스팅을 보면 대충 뭔지는 알것 같은데,
왜 이렇게 쓰는지 이해가 잘 안된다.
아무리 클라에서 서버의 규약(혹은 api 정의)를 따라야 하는건 매한가지 아닌가?
하다못해 link 의 rel 키값이라도 알아야 쓰지.
이쯤 되면 역시 영어가 짱이다. 슬픈 현실 ㅠ_ㅠ
https://en.wikipedia.org/wiki/HATEOAS
위 링크를 보면 감이 대충 스멀스멀 온다.
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: ...
<?xml version="1.0"?>
<account>
<account_number>12345</account_number>
<balance currency="usd">100.00</balance>
<link rel="deposit" href="https://bank.example.com/account/12345/deposit" />
<link rel="withdraw" href="https://bank.example.com/account/12345/withdraw" />
<link rel="transfer" href="https://bank.example.com/account/12345/transfer" />
<link rel="close" href="https://bank.example.com/account/12345/close" />
</account>
아~
저렇게 쓰자는거구나. 싶다.
일종의 규약인 셈이다.
이런 식으로 만들면, 클라 개발하는 양반들이 특정 동작에 뒤따를만한 명령을 파악하는데 도움이 되고,
restful api 명세 변경시 대응할 필요도 없고 (link 에 지정된 주소를 그냥 사용하면 되니까 대응이 필요 없음. 키가 바뀌지 않는 한.. -.-;;)
암튼 그러라고 나온 개념이구나 싶당.
아래는 스프링에 정리되어 있는 HATEOAS 내용이다. json 버전의 예시를 볼 수 있다.
https://spring.io/understanding/HATEOAS
{ "name": "Alice", "links": [ { "rel": "self", "href": "http://localhost:8080/customer/1" } ] }
아 물론 내가 이걸 쓸지 안쓸지
그건 좀 더 두고 봐야겠다. ㅋ
'dev' 카테고리의 다른 글
mysql 에 이모지 emoji 사용하기 utf8mb4 (0) | 2017.03.20 |
---|---|
CKEDITOR link 내에서 & (ampersand) 치환 이슈 (0) | 2017.03.17 |
python BeautifulSoup (0) | 2017.02.25 |
graph db 탐험기 (0) | 2017.02.21 |
eclipse zookeeper plugin (0) | 2017.02.13 |