Con "application programming interface" (in acronimo API, in italiano interfaccia di programmazione di un'applicazione), in informatica, si indica ogni insieme di procedure disponibili al programmatore, di solito raggruppate a formare un set di strumenti specifici per l'espletamento di un determinato compito all'interno di un certo programma. Spesso con tale termine si intendono le librerie software disponibili in un certo linguaggio di programmazione.
Le API permettono infatti di evitare ai programmatori di riscrivere ogni volta tutte le funzioni necessarie al programma dal nulla, ovvero dal basso livello, rientrando quindi nel più vasto concetto di riuso di codice. Le API stesse rappresentano quindi un livello di astrazione intermedio: il software che fornisce una certa API è detto implementazione dell'API.
Esempio di invocazione e WSDL attraverso l'host: https://api.cloudmobile.it/magazzino.php?wsdl
Non sono al momento disponibili funzionalità esposte in questa tecnologia.
L'autenticazione delegata al server OAuth prevede l'invio di un token nell'header di ogni chiamata.
Per poter inviare il token di autenticazione, quest'ultimo, va inserito tra i parametri dell'header della richiesta HTTP con il seguente formato:
"token: %valore_token%" es.:
...
1 Accept-Encoding: gzip,deflate
2 Content-Type: text/xml;charset=UTF-8
3 SOAPAction: "https://api.cloudmobile.it/elencoCodiciIva"
4 token: 3d7853c6e3e0bf91041a1f357e112a4bc439a74f
5 Content-Length: 237
6 Connection: Keep-Alive
Esempio php:
$context = array(
'http' => array(
'header' => "token: " . $valoreToken
)
);
$soap_options = array(
'soap_version' => SOAP_1_1,
'encoding' => 'UTF-8',
'exceptions' => false,
'stream_context' => stream_context_create($context)
);
$client = new \SoapClient($wsdl, $soap_options);
$params = array(); //array con i parametri di input
$client->__call("metodo_da_richiamare", $params);
Esempio Java:
/**
* This class was generated by the JAX-WS RI. JAX-WS RI 2.2.9-b130926.1035
* Generated source version: 2.2
*
*
@WebServiceClient(name = "Infoteamwebservice", targetNamespace = "https://www.infoteam.it/soap", wsdlLocation = "http://www.infoteam.it/webservice?wsdl")
public class Infoteamwebservice extends Service {
...
public class ClientWS {
public static void main(String args) {
Infoteamwebservice infoteamWs = new Infoteamwebservice();
InfoteamPortType portType = infoteamWs.getInfoteamwebservicePort();
Map<String, Object> reqContext = ((BindingProvider) portType).getRequestContext();
Map<String, List<String>> headers = new HashMap<String, List<String>>();
headers.put("token", Collections.singletonList("abcdefghilmnopqrstuvz1234567890"));
reqContext.put(MessageContext.HTTP_REQUEST_HEADERS, headers);
try {
Object res = portType.webMethod(param1, param2, ...);
catch (Exception e) {
Esempio C#:
//
// This source code was auto-generated by wsdl,Version=4.0.30319.33440.
//
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl","4.0.30319.33440")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="InfoteamwebserviceBinding",Namespace="https://www.infoteam.it/soap")]
public partial class Infoteamwebservice :System.Web.Services.Protocols.SoapHttpClientProtocol {
protected override WebRequest GetWebRequest(Uri uri){
var request = base.GetWebRequest(uri);
request.Headers.Add("token","abcdefghilmnopqrstuvz1234567890");
return request;
...