As várias palestras que assisti e os tutoriais que escaneei no REST parecem enfatizar algo chamado 'descoberta'. Para meu entendimento limitado, o termo parece significar que um cliente deve poder acessar http://URL
- e obter automaticamente uma lista de coisas que ele pode fazer.
O que estou tendo problemas para entender - é que 'clientes de software' não são seres humanos. São apenas programas que não têm o conhecimento intuitivo para entender o que exatamente fazer com os links fornecidos. Somente as pessoas podem ir a um site e entender o texto e os links apresentados e agir sobre ele.
Então, qual é o objetivo da descoberta, quando o código do cliente que acessa essas URLs detectáveis não pode realmente fazer nada com ele, a menos que o desenvolvedor humano do cliente realmente experimente os recursos apresentados? Isso parece exatamente a mesma coisa que definir o conjunto de funções disponíveis em um manual de Documentação, apenas de uma direção diferente e envolvendo mais trabalho para o desenvolvedor. Por que essa segunda abordagem de pré-definição do que pode ser feito em um documento externo aos recursos reais do REST é considerada inferior?