<div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> As an example, HAL is one common way to do this:<div><br></div><a href="http://stateless.co/hal_specification.html" target="_blank">http://stateless.co/hal_<wbr>specification.html</a></blockquote><div><br></div><div>HAL looks neat. It's a reasonably well defined standard for defining HTTP responses, in much the same vein as JSON schema.<br></div><div><br></div><div>If it's adopted, the one thing I'd suggest is to avoid the use of CURIEs. It's true that there's an (expired) W3C proposal for them. However, using CURIEs would add a non-trivial amount of complexity into both server and client applications. Additionally, I don't see any libraries supporting CURIEs, either in the Python standard library or on PyPI. The only benefit in our case seems to be a slight reduction in response sizes. (Content-encoding can do that better, anyway.)</div><div><br></div><div>Importantly, HAL and its brethren don't solve the problems discussed in this thread. It's merely a standard for presenting responses. It doesn't help y'all define what requests are available to clients.<br></div></div>