Qual è la differenza tra un'API e un protocollo?
Un'API descrive tutti i messaggi validi che un programma può accettare. Non dice nulla sull'ordine corretto di questi messaggi, o sulla loro interazione con altri programmi.
I protocolli stanno sopra le API. Un protocollo descrive la sequenza valida di messaggi che fluiscono tra le API di più parti per realizzare qualche compito di livello superiore.
Così, un oggetto HTTPRequest potrebbe avere un'API come:
open(method)
addHeader(name, value)
send(data, progressHandler)
abort()
con una corrispondente API HTTPRequestProgressHandler come:
onprogress(percentComplete)
onsuccess()
onerror()
onaborted()
Il protocollo per inviare una richiesta con questa API potrebbe essere:
1. Chiamare open()
2. Chiamare addHeader() se necessario
3. Chiamare send(), passando opzionalmente un progressHandler
4. Il progressHandler avrà il suo metodo onprogress chiamato ripetutamente mentre il send() è in corso
5. Chiama abort() se necessario
6. Il progressHandler avrà il suo metodo onsucess, onerror, o onaborted chiamato quando la richiesta si completa.
Nota che il termine "messaggio" qui è concettuale. Le API e i protocolli possono avvenire su qualsiasi mezzo di comunicazione. I messaggi potrebbero essere chiamate di funzioni locali all'interno di un processo, chiamate IPC all'interno di una macchina, bit su un filo, chiamate REST attraverso internet, ecc.
Articoli simili
- Qual è la differenza tra il protocollo SMB e il protocollo FTP?
- Se qualcuno è allergico alle api, deve stare lontano da miele, cera d'api e polline d'api?
- Qual è qualche chatbot online con API RESTful completamente gratuito (qualcosa come https://www.cleverbot.com/api)?
- Qual è il protocollo Internet dell'India?