Web Service Development

1. Un Web Service deve essere definito con un WSDL (o WADL in caso di REST) ​​e tutte le risposte restituite dal servizio Web devono rispettare il WSDL pubblicizzato. Questo può essere ad esempio testato con strumenti come SoapUI o XMLSpy, che convalidano SOAPresponses contro un WSDL

2. Utilizza uno schema XML per definire l'input e l'output delle operazioni del servizio Web.

  • Assicurati di definire i tipi di ritorno per tutti i dati restituiti, preferibilmente come XSD ComplexTypes.
  • Non utilizzare il tag AnyType, in quanto rende impossibile (o non benefico) l'utilizzo di XML
  • Usa le binding libraries per generare automaticamente codice per la creazione di oggetti di richiesta / risposta.
  • Per ComplexTypes, assicurarsi che gli indicatori di presenza (minOccurs e maxOccurs) siano definiti correttamente, in modo che sia chiaro al consumatore quali campi sono obbligatori, quali sono facoltativi e la frequenza di ciascun campo.
  • Assicurati che gli spazi dei nomi siano ben definiti (non usare valori predefiniti come & quot; org.tempuri & quot;)

3. Non utilizzare un protocollo di autenticazione proprietario per il tuo servizio Web.

Piuttosto utilizza standard comuni come HttpAuth o Kerberos. Oppure definisci username / password come parte del tuo payload XML e esponi il tuo servizio Web tramite SSL.

4. Mantieniti sul semplice

Scrivi un servizio Web con molti metodi semplici piuttosto che un grande metodo (con numerosi argomenti) che cerca di servire tutti.

Aderisci ai principi OO per massimizzare la coesione e ridurre al minimo l'accoppiamento durante la progettazione dei servizi Web.

5. Assicurati che il tuo Web Service restituisca i messaggi di errore utili per i problemi di debug / tracciamento. Ad esempio, includi un codice di errore e una descrizione di errore leggibile dall'uomo.

6. Assicurati di offrire un ambiente di sviluppo per il tuo servizio, che preferibilmente esegue la stessa versione Web Service di quella in produzione, ma in un database di prova piuttosto che in quello in produzione.

7. Esegui dei test sul tuo Web Service, in modo tecnologico-agnostico, prima di integrarne degli altri.