Will the client program need to download and install any
package/bundle etc from the website/server etc providing APIs and
include it with their product or no bundle is needed to download from
service provider.
Dipende. In genere, quando si utilizza un servizio web, si effettua una richiesta e si ottiene una risposta. Come gestisci quella è la tua scelta. Non è necessario scaricare necessariamente altro che le risposte dal servizio.
La maggior parte delle volte, tuttavia, si desidera generare un'interfaccia per i servizi Web che gestiscono la parte di comunicazione per il proprio client, quindi non è necessario scriverla da soli. Lo fai principalmente scaricando file WSDL per il servizio che può essere utilizzato per generare tale interfaccia client. Questo client non contiene alcuna logica di WebAPI, lo scopo è quello di consentire all'utente di chiamare la logica sul lato server. La generazione di tale interfaccia client è solo per tua comodità, quindi non devi analizzare le risposte o gestire il protocollo sottostante.
What are the variants in common use?
SOAP e REST con le risposte in JSON o XML sono le forme più comuni di tali servizi.
Does it boil down to how much we want to do on client side and how
much we want to do on server side? like not downloading anything from
web API service provider means everything happens on web API provider
side..
Bene, non so come rispondere a quella parte della tua domanda perché non la capisco. Quando si effettua una chiamata a una WebAPI, la richiesta viene elaborata sul server e viene inviata una risposta all'utente. Anche se generi stub client da WSDL, questo fornisce solo un'interfaccia e gestisce le comunicazioni per te. In questo caso non esiste client di logica di dominio.