¿Cuál es la diferencia entre un servicio web, API web y API REST? ¿Qué es mejor usar con todos los lenguajes como Java, PHP y aplicaciones móviles?

Diferentes libros y diferentes organizaciones proporcionan diferentes definiciones a los servicios web.
Servicio web: – En términos simples, un servicio web es una función a la que pueden acceder otros programas a través de la web (Http). Para aclarar un poco, cuando crea un sitio web en PHP que genera HTML, su objetivo es el navegador y, por extensión, el ser humano que lee la página en el navegador. Un servicio web no está dirigido a humanos sino a otros programas.

Así por ejemplo:
Puedo ir a Google Maps, escribir la dirección de mi casa y ver un mapa de donde vivo en mi navegador.
Pero, ¿qué pasaría si estuviera escribiendo un programa de computadora donde quisiera tomar una dirección y mostrar un mapa bonito, al igual que los mapas de Google?
Bueno, podría escribir un programa de mapeo completamente nuevo desde cero, O podría llamar a un servicio web que proporciona Google Maps, enviarle la dirección y le devolverá un mapa gráfico de la ubicación, que puede mostrar en su programa.

Hay mucho más, ya que algunas de las otras publicaciones entran, pero el resultado es que permite que su aplicación (Programas de computadora) recupere información DE o envíe información A algún recurso.
Por ejemplo:

  1. Puede crear un servicio web para permitir que aplicaciones externas envíen pedidos a su empresa.

Entonces eso es solo por ejemplo:
Un servicio web es un tipo de API, casi siempre uno que opera a través de HTTP (aunque algunos, como SOAP, pueden usar transportes alternativos, como SMTP). La definición oficial del W3C menciona que los servicios web no necesariamente usan HTTP , pero este es casi siempre el caso y generalmente se asume a menos que se mencione lo contrario.
Para ver ejemplos de servicios web, consulte SOAP, REST y XML-RPC específicamente.

WEB API: Web API es un marco para crear servicios HTTP que pueden ser consumidos por una amplia gama de clientes, incluidos navegadores, móviles, iphone y tabletas, casi lo mismo que los servicios web. La API web generalmente se realiza como HTTP / REST, nada está definido, salida puede ser, por ejemplo. JSON / XML, la entrada puede ser XML / JSON / o datos sin formato.

Puedes pensarlo como:
Una API de servicio web (WEB API) casi siempre usa HTTP (de ahí el elemento web), y definitivamente implica la comunicación a través de una red.
El mismo ejemplo mencionado anteriormente con respecto a los mapas de Google se puede utilizar aquí.

API REST: antes de conocer la API REST
¿Qué es el descanso?
REST es un estilo arquitectónico que utiliza llamadas HTTP simples para la comunicación entre máquinas en lugar de opciones más complejas como CORBA, COM +, RPC o incluso SOAP. El uso de REST significa que sus llamadas se basarán en mensajes y dependerán del estándar HTTP para describir estos mensajes. El uso del protocolo HTTP significa que REST es un mecanismo simple de solicitud / respuesta. Cada solicitud devuelve una respuesta posterior. Puede ver cómo se ve una solicitud y respuesta simplificadas a continuación:
Ventaja:
Funciona porque no está vinculando su API a su tecnología del lado del cliente. Se podría imaginar que se puede acceder a esta API desde un proyecto web del lado del cliente, una aplicación de iOS, un dispositivo IoT e incluso un Windows Phone.

Mediante la API REST, solo puede pensar en ello, ya que proporciona varios URI a la tecnología del lado del cliente (tecnología front end) desde donde la tecnología del lado del cliente obtiene los datos.
Por ejemplo, vea este enlace:
https://graph.facebook.com/youtube y https://www.facebook.com/youtube ambos son información, pero uno está devolviendo los datos Json de esa página que Facebook proporciona como URI que puede usar en sus aplicaciones y otro uno es solo una página de Facebook.

En general, puede pensar que el servicio web es solo el padrino de WEB API y REST API. No hay mucha diferencia entre estas tecnologías.

Básicamente también soy nuevo en estas cosas, acabo de publicar mis puntos de vista al respecto. Lo editaré más en el futuro si obtengo más información al respecto.

Es un tema muy amplio para aprender, solo búscalo en google, aprenderás más.
Con respecto a su propósito, puede hacer que el servicio web RESTful proporcione diferentes URI (que contendrán datos json) a su tecnología del lado del cliente, que podría ser cualquier cosa como una aplicación de Android, un sitio web, una aplicación de Windows, etc. Debido a esto, no tiene que preocuparse qué tecnología se está utilizando en el lado del cliente.