You already have a beautiful HATEOAS API. You just don't know it yet.