SMO: HTTP schema

Lo schema Service Message Object (SMO) contiene altri schemi, compreso quello che descrive l'intestazione HTTP.

Introduzione

Lo schema HTTP specifica la struttura generale dell'intestazione HTTP.

HTTP schema di intestazione

<schema xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:httpsca="http://www.ibm.com/xmlns/prod/websphere/http/sca/6.1.0"
        xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
        ecore:package="com.ibm.websphere.http.headers"
        ecore:nsPrefix="httpsca"
        elementFormDefault="qualified"
        targetNamespace="http://www.ibm.com/xmlns/prod/websphere/http/sca/6.1.0">

  <element name="HTTPMessageHeader" type="httpsca:HTTPMessageParameters"/>
  
  <complexType name="HTTPMessageParameters">
    <sequence>
      <element minOccurs="0" nillable="true" name="HTTPControl" type="httpsca:HTTPControl"/>
      <element minOccurs="0" nillable="true" name="HTTPHeaders" type="httpsca:HTTPHeaders"/>
    </sequence>
  </complexType>

  <complexType name="HTTPControl">
    <sequence>
      <element minOccurs="0" nillable="true" name="URL" type="anyURI"/>
      <element minOccurs="0" nillable="true" name="Version" type="httpsca:HTTPVersion"/>
      <element minOccurs="0" nillable="true" name="Method" type="string"/>
      <element minOccurs="0" nillable="true" name="DynamicOverrideURL" type="anyURI"/>
      <element minOccurs="0" nillable="true" name="DynamicOverrideVersion" type="httpsca:HTTPVersion"/>
      <element minOccurs="0" nillable="true" name="DynamicOverrideMethod" type="string"/>
      <element minOccurs="0" nillable="true" name="MediaType" type="string"/>
      <element minOccurs="0" nillable="true" name="Charset" type="string"/>
      <element minOccurs="0" nillable="true" name="TransferEncoding" type="string"/>
      <element minOccurs="0" nillable="true" name="ContentEncoding" type="string"/>
      <element minOccurs="0" name="StatusCode" type="int"/>
      <element minOccurs="0" nillable="true" name="ReasonPhrase" type="string"/>
      <element minOccurs="0" nillable="true" name="Authentication" type="httpsca:HTTPAuthentication"/>
      <element minOccurs="0" nillable="true" name="SSLSettings" type="httpsca:HTTPSSLSettings"/>
      <element minOccurs="0" maxOccurs="2" nillable="true" name="ProxySettings" type="httpsca:HTTPProxySettings"/>
    </sequence>
  </complexType>

  <complexType name="HTTPHeader">
    <sequence>
      <element name="name" type="string"/>
      <element name="value" type="string"/>
    </sequence>
  </complexType>

  <complexType name="HTTPHeaders">
    <sequence>
      <element name="header" minOccurs="0" maxOccurs="unbounded" type="httpsca:HTTPHeader"/>
    </sequence>
  </complexType>
  
  <!--SSL Settings -->
  <complexType name="HTTPSSLSettings">
    <sequence>
      <element default="SSL" nillable="true" name="SSLVersion" type="string"/>
      <element default="false" nillable="true" name="SSLDebug" type="boolean"/>
      <element default="JKS" nillable="true" name="KeyStoreType" type="string"/>
      <element default="JKS" nillable="true" name="TrustStoreType" type="string"/>
      <element nillable="true" name="KeyStore" type="string"/>
      <element nillable="true" name="KeyStoreAlias" type="string"/>
      <element nillable="true" name="KeyStorePassword" type="string"/>
      <element nillable="true" name="TrustStore" type="string"/>
      <element nillable="true" name="TrustStorePassword" type="string"/>
      <element default="false" nillable="true" name="UseClientAuth" type="boolean"/>
    </sequence>
  </complexType>
	
  <!--Proxy Settings -->
  <complexType name="HTTPProxySettings">
    <sequence>
      <element nillable="true" name="proxyHost" type="string"/>
      <element nillable="true" name="proxyPort" type="int"/>
      <element nillable="true" name="proxyType" type="httpsca:HTTPProxyType"/>
      <element nillable="true" minOccurs="0" name="proxyCredentials" type="httpsca:HTTPCredentials"/>
      <element nillable="true" minOccurs="0" maxOccurs="unbounded" name="nonProxyHost" type="string"/>
    </sequence>
  </complexType>
	
  <!--HTTP Authentication -->
  <complexType name="HTTPAuthentication">
    <sequence>
      <element nillable="true" name="credentials" type="httpsca:HTTPCredentials"/>
      <element nillable="true" name="authenticationType" type="httpsca:HTTPAuthenticationType"/>
    </sequence>
  </complexType>
	
  <!--HTTP Credentials -->
  <complexType name="HTTPCredentials">
    <sequence>
      <element nillable="true" name="userId" type="string"/>
      <element nillable="true" name="password" type="string"/>
    </sequence>
  </complexType>
	
  <!-- Authentication Type. Supports: Basic Auth -->
  <simpleType name="HTTPAuthenticationType">
    <restriction base="string">
      <enumeration value="Basic"/>
    </restriction>
  </simpleType>
	
  <!-- Proxy protocol type. Supports: http and https -->
  <simpleType name="HTTPProxyType">
    <restriction base="string">
      <enumeration value="http"/>
      <enumeration value="https"/>
    </restriction>
  </simpleType>	
	
  <!-- HTTP Version type.-->
  <simpleType name="HTTPVersion">
    <restriction base="string">
      <enumeration value="1.0"/>
      <enumeration value="1.1"/>
    </restriction>
  </simpleType>	
</schema>

Descrizioni dei campi dello schema

Intestazione HTTP
Modelli HTTP campi di intestazione.
controllo
Modella campi specifici dell'intestazione HTTP che sono ampiamente utilizzati nel contesto della mediazione dei servizi. La maggior parte di questi campi di intestazione sono definiti nella specifica HTTP 1.1.
URL
Quando una richiesta di servizio arriva all'enterprise service bus (ESB), attraverso un binding di esportazione HTTP, il campo URL contiene il URL del servizio HTTP che chiama l'ESB. Se l'ESB chiama un altro servizio HTTP, utilizzando un binding di importazione HTTP, il campo DynamicOverrideURL può essere utilizzato per impostare dinamicamente il servizio URL che l'ESB chiama. Il richiedente del servizio, (dal punto di vista ESB), può essere un provider del servizio: un cliente può richiamare un servizio Web che utilizza ESB per richiamare un altro servizio.
Nota: se si utilizza un binding di servizio web che supporta il gateway di servizio, l'elemento URL contiene la richiesta URL ed eventuali parametri specificati nella richiesta URL. È possibile creare un gateway di servizio che instrada i messaggi utilizzando i parametri inclusi nella richiesta URL.
Versione
La versione HTTP ricevuta nella chiamata HTTP. Il valore del campo Version può essere: 1.1 o 1.0. Quando si invia una richiesta, il campo Version viene ignorato dal binding di importazione HTTP ; si deve invece utilizzare il campo DynamicOverrideVersion.
Metodo
Il metodo HTTP ricevuto nella chiamata HTTP. I metodi sono: GET, POST, PUT, DELETE, TRACE, OPTIONSe HEAD. Quando si invia una richiesta, il campo Method viene ignorato dal binding di importazione HTTP ; si deve invece utilizzare il campo DynamicOverrideMethod.
DynamicOverrideURL
Il URL utilizzato dal binding di importazione HTTP, quando si invia una richiesta.
DynamicOverrideVersion
La versione di HTTP utilizzata dal binding di importazione di HTTP, quando si invia una richiesta. Il valore del campo Version può essere: 1.1 o 1.0.
DynamicOverrideMethod
Il metodo HTTP utilizzato dal binding di importazione HTTP, quando si invia una richiesta. I metodi sono: GET, POST, PUT, DELETE, TRACE, OPTIONSe HEAD.
MediaType
Il tipo di supporto HTTP.
Set di caratteri
Il set di caratteri HTTP.
TransferEncoding
La codifica di trasferimento HTTP.
ContentEncoding
La codifica del contenuto di HTTP.
StatusCode
Il codice di stato HTTP, come numero intero.
ReasonPhrase
Il codice di stato HTTP, come spiegazione leggibile dall'uomo.
Autenticazione
Modella l'intestazione di autenticazione HTTP.
credenziali
Le credenziali di HTTP per l'autenticazione.
userId
L'ID utente.
Password
La password.
authenticationType
Il tipo di autenticazione HTTP. Attualmente, è supportata solo l'autenticazione di base.
Impostazioni SSL
Modella le impostazioni SSL di HTTP utilizzate per la chiamata a HTTP.
Versione SSL
La versione SSL.
Debug SSL
Un valore booleano che definisce se viene utilizzato SSLDebug .
KeyStoreType
Il tipo di keystore.
KeyStore
Il nome del keystore.
KeyStoreAlias
L'alias del keystore.
KeyStorePassword
La password del keystore.
TrustStoreType
Il tipo di truststore.
TrustStore
Il nome del truststore.
TrustStorePassword
La password del truststore.
UseClientAuth
Un valore booleano che definisce se viene utilizzata l'autenticazione client.
ProxySettings
Modella le impostazioni del proxy di HTTP utilizzate per la chiamata a HTTP.
proxyHost
Il nome host del proxy.
proxyPort
La porta proxy.
proxyType
Il tipo di proxy da utilizzare. Il valore del campo proxyType può essere: http o https.
proxyCredentials
Le credenziali per il proxy.
userId
L'ID utente.
Password
La password.
nonProxyHost
Un elenco di host non proxy.
intestazione
Modella qualsiasi altro campo dell'intestazione HTTP definito nella specifica HTTP 1.1.
nome
Il nome dell'intestazione.
valore
Il valore dell'intestazione.