Disculpe @MarkAmery y Eugene, pero eso es incorrecto.
Su aplicación js + html (cliente) que se ejecuta en el navegador PUEDE configurarse para excluir llamadas directas no autorizadas a la API de la siguiente manera:
- Primer paso: configurar la API para que requiera autenticación. El cliente primero debe autenticarse a sí mismo a través del servidor (o algún otro servidor de seguridad), por ejemplo, pidiendo al usuario humano que proporcione la contraseña correcta.
Antes de la autenticación, no se aceptan las llamadas a la API.
Durante la autenticación se devuelve un "token".
Después de la autenticación, solo se aceptarán las llamadas a la API con el "token" de autenticación.
Por supuesto, en esta etapa solo los usuarios autorizados que tienen la contraseña pueden acceder a la API, aunque si son programadores que están depurando la aplicación, pueden acceder a ella directamente con fines de prueba.
- Segundo paso: ahora configure una API de seguridad adicional, que se llamará dentro de un corto límite de tiempo después de que la aplicación js + html del cliente se solicitó inicialmente al servidor. Esta "devolución de llamada" le dirá al servidor que el cliente se descargó correctamente. Restrinja sus llamadas a la API REST para que funcionen solo si el cliente se solicitó recientemente y con éxito.
Ahora, para usar su API, primero deben descargar el cliente y ejecutarlo en un navegador. Solo después de recibir con éxito la devolución de llamada, y luego de la entrada del usuario en un corto período de tiempo, la API aceptará llamadas.
Por lo tanto, no tiene que preocuparse de que se trate de un usuario no autorizado sin credenciales.
(El título de la pregunta, '¿Cómo puedo asegurar las llamadas a la API REST?', Y de la mayor parte de lo que dice, esa es su principal preocupación, y no la pregunta literal de CÓMO se llama su API, sino POR QUIÉN, ¿correcto? )