Las diversas charlas que he visto y los tutoriales que escaneé en REST parecen enfatizar algo llamado 'capacidad de descubrimiento'. A mi entender limitado, el término parece significar que un cliente debería poder ir http://URL
y obtener automáticamente una lista de las cosas que puede hacer.
Lo que me cuesta entender es que los "clientes de software" no son seres humanos. Son solo programas que no tienen el conocimiento intuitivo para entender exactamente qué hacer con los enlaces provistos. Solo las personas pueden ir a un sitio web y entender el texto y los enlaces presentados y actuar en consecuencia.
Entonces, ¿cuál es el punto de descubrimiento, cuando el código del cliente que accede a tales URL detectables en realidad no puede hacer nada con él, a menos que el desarrollador humano del cliente realmente experimente con los recursos presentados? Esto parece exactamente lo mismo que definir el conjunto de funciones disponibles en un manual de Documentación, solo desde una dirección diferente y en realidad implica más trabajo para el desarrollador. ¿Por qué este segundo enfoque de predefinir lo que se puede hacer en un documento externo a los recursos REST reales se considera inferior?