Стоит ли использовать HATEOAS для Restful Web Services в реальном мире?

Я много читал о потенциальных преимуществах преобразования существующих веб-сервисов Restful в HATEOS, насколько это возможно. Я понимаю важность предоставления ссылок в полезной нагрузке, чтобы облегчить потребителю запоминание следующих допустимых доступных действий. Тем не менее, я не могу понять, как это поможет потребителю моих веб-сервисов Restful в реальности.

Для иллюстрации я возьму этот пример из Rest In Practice книги о том, как сделать заказ на кофе :-


  takeAway
  
    latte
    1
    whole
    small
  
  2.0
  payment-expected
  

. По сути, это позволяет потребителю совершить платеж, определенный тегом . Однако на самом деле потребителю по-прежнему необходимо знать всю семантику этого вызова веб-сервиса, например, какой метод (POST или PUT )использовать, какие параметры запроса использовать в полезной нагрузке, чтобы сделать оплата и т. д., другими словами, потребитель все еще должен полагаться на документацию WADL, чтобы знать, как успешно вызвать эту веб-службу. Эти теги, вероятно, имеют больше смысла, если все они используют GET для одного конкретного элемента. В противном случае я действительно не вижу особых преимуществ в определении ссылок здесь...помимо того факта, что потребитель знает, какие действия он может вызвать дальше, а затем обращается к WADL, чтобы определить, как правильно его вызвать.

Следующее, что меня беспокоит, это возможность получить очень большую полезную нагрузку со всеми тегами . Например, если GET для /projects/1/users возвращает всю информацию о пользователе, относящуюся к проекту 1, я предполагаю, что в итоге я получу следующие теги:-


    
        
        
        
    
    
        
        

        
        
        
       ...
    

Если проект содержит, скажем, 500 пользователей... разве у меня не будет 500 пользовательских ссылок в полезной нагрузке? В противном случае, каков наилучший подход к перепроектированию моих веб-сервисов, чтобы справиться с этой ситуацией? Или это допустимо в реальном мире?

Любые мысли или предложения очень ценятся здесь. Спасибо.

17
задан laurent 29 October 2017 в 14:17
поделиться