Solicitud XML POST

Los servicios web definidos por el usuario pueden exponerse como servicio web REST y configurarse para que tengan un método POST que acepte entrada XML. Especifique Content-Type:application/xml y utilice el siguiente formato para las solicitudes XML POST.

Datos planos

Utilice este formato para enviar datos planos a un servicio web utilizando POST:

<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:Input>
       <svc:Row>
          <svc:Field1>Example value</svc:Field1>
          <svc:Field2>Another example value</svc:Field2>
       </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Donde:

ServiceName
El nombre del servicio web en el servidor Spectrum™ Technology Platform.
Field1 y Field2
Los nombres de los campos de entrada definidos en la etapa de entrada del servicio.

Por ejemplo, esta solicitud envía un nombre y el apellido a un servidor denominado CasingExample.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:Input>
       <svc:Row>
          <svc:FirstName>Alex</svc:FirstName>
          <svc:LastName>Smith</svc:LastName>
       </svc:Row>
    </svc:Input>
</CasingExampleRequest>

Datos de lista

Los datos de lista consisten en una agrupación jerárquica de campos agrupados bajo un campo principal.
Nota: Para utilizar los datos de lista como entrada, el servicio se debe exponer como servicio web REST sin ningún recurso GET. Si el servicio tiene un recurso GET aparecerá un error en Enterprise Designer cuando exponga el servicio ya que los campos jerárquicos no son admitidos para GET.

Utilice el siguiente formato para enviar datos de lista a un servicio web con POST.

<?xml version="1.0" encoding="UTF-8"?>
<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:Input>
        <svc:Row>
            <svc:ListField1>
                <svc:DataType>
                    <svc:SubField1>Example value</svc:SubField1>
                    <svc:SubField2>Example value</svc:SubField2>
                </svc:DataType>
            </svc:ListField1>
        </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Donde:

ListField1
El nombre del campo jerárquico definido en la etapa de entrada del servicio.
DataType
El tipo de dato del campo de la lista definido en la etapa de entrada del servicio.
Subfield1 y Subfield2
Los nombre de los campos secundarios que componen el campo de lista.

Por ejemplo, esta solicitud envía un nombre, el apellido y una lista de números telefónicos a un servidor denominado CasingExample.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:Input>
       <svc:Row>
          <svc:FirstName>George</svc:FirstName>
          <svc:LastName>Washington</svc:LastName>
          <svc:PhoneNumbers>
              <svc:PhoneNumbers>
                 <svc:HomePhone>123-234-9876</svc:HomePhone>
                 <svc:CellPhone>123-678-9012</svc:CellPhone>
                 <svc:OfficePhone>123-987-6543</svc:OfficePhone>
               </svc:PhoneNumbers>
          </svc:PhoneNumbers>
       </svc:Row>
    </svc:Input>
</CasingExampleRequest>

User Fields

You can pass extra fields through the web service even if the web service does not use them. Estos campos se obtienen, sin modificación, en la sección user_fields de la respuesta. No es necesario definir los campos de usuario que usted proporciona en la solicitud en la etapa de entrada del flujo de datos del servicio.

<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:Input>
       <svc:Row>
          <svc:user_fields>
            <svc:user_field>
                <svc:name>FieldName</svc:name>
                <svc:value>FieldValue</svc:value>
            </svc:user_field>
          </svc:user_fields> 
       </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Donde:

FieldName
El nombre del campo de traspaso.
FieldValue
El valor que se consigna en el campo de traspaso.

Por ejemplo, esta solicitud envía el nombre del cónyuge como un campo de traspaso. El nombre de usuario del campo es Spouse y el valor del campo es Martha.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:Input>
        <svc:Row>
            <svc:FirstName>George</svc:FirstName>
            <svc:LastName>Washington</svc:LastName>
            <svc:PhoneNumbers>
                <svc:PhoneNumbers>
                    <svc:HomePhone>123-123-1234</svc:HomePhone>
                    <svc:CellPhone>123-456-4567</svc:CellPhone>
                    <svc:OfficePhone>123-678-6789</svc:OfficePhone>
                </svc:PhoneNumbers>
            </svc:PhoneNumbers>
            <svc:user_fields>
                <svc:user_field>
                    <svc:name>Spouse</svc:name>
                    <svc:value>Martha</svc:value>
                </svc:user_field>
            </svc:user_fields>
        </svc:Row>
    </svc:Input>
</CasingExampleRequest>

Opciones

Puede especificar las opciones de la solicitud, lo que anula las opciones predeterminadas especificadas en el flujo de datos de servicio. Para los servicios web definidos por usuario, puede especificar solo opciones de la solicitud si se configuró el flujo se datos para aceptar opciones. Para configurar un servicio para que acepte opciones en la solicitud, abra el servicio en Enterprise Designer y seleccione Editar > Opciones de flujo de datos.

Para especificar las opciones de procesamiento de una solicitud, utilice este formato:

<ServiceNameRequest xmlns:svc="http://www.pb.com/spectrum/services/ServiceName">
    <svc:options>
        <svc:OptionName>OptionValue</svc:OptionName>
    </svc:options>
    <svc:Input>
        <svc:Row> ... </svc:Row>
    </svc:Input>
</ServiceNameRequest>

Donde:

OptionName
El nombre de la opción. Para obtener una lista de opciones válidas para el servicio, consulte el WADL del servicio o abra el servicio en Enterprise Designer y seleccione Editar > Opciones de flujo de datos.
OptionValue
Un valor legal para la opción. Para obtener una lista de valores válidos, abra el servicio en Enterprise Designer y seleccione Editar > Opciones de flujo de datos.

Por ejemplo, esta solicitud establece la opción OutputCasing en U:

<AddressValidationRequest xmlns:svc="http://www.pb.com/spectrum/services/AddressValidation">
    <svc:options>
      <svc:OutputCasing>U</svc:OutputCasing>
    </svc:options>
    <svc:Input>
       <svc:Row>
          <svc:FirstName>George</svc:FirstName>
          <svc:LastName>Washington</svc:LastName>
          <svc:AddressLine1>123 Main St.</svc:AddressLine1>
          <svc:City>Springfield</svc:City>
          <svc:StateProvince>MO</svc:City>
       </svc:Row>
    </svc:Input>
</AddressValidationRequest>

Ejemplo Solicitud XML con POST

El siguiente ejemplo demuestra cómo incluir opciones, campos planos, un campo de lista y campos definidos por el usuario en una solicitud XML en un servicio web utilizando POST.

<CasingExampleRequest xmlns:svc="http://www.pb.com/spectrum/services/CasingExample">
    <svc:options>
        <svc:OutputCasing>U</svc:OutputCasing>
    </svc:options>
    <svc:Input>
        <svc:Row>
            <svc:FirstName>George</svc:FirstName>
            <svc:LastName>Washington</svc:LastName>
            <svc:AddressLine1>1073 Maple</svc:AddressLine1>
            <svc:City>Batavia</svc:City>
            <svc:StateProvince>IL</svc:StateProvince>
            <svc:PhoneNumbers>
                <svc:PhoneNumbers>
                    <svc:HomePhone>123-123-1234</svc:HomePhone>
                    <svc:CellPhone>123-345-3456</svc:CellPhone>
                    <svc:OfficePhone>123-456-4567</svc:OfficePhone>
                </svc:PhoneNumbers>
            </svc:PhoneNumbers>
            <svc:user_fields>
                <svc:user_field>
                    <svc:name>Spouse</svc:name>
                    <svc:value>Martha</svc:value>
                </svc:user_field>
            </svc:user_fields>
        </svc:Row>
    </svc:Input>
</CasingExampleRequest>
En este ejemplo,
  • OutputCasing es una opción expuesta por el servicio web que controla si la salida se devuelve en mayúsculas o en minúsculas. En esta solicitud, se establece en U para mayúsculas.
  • Input es la etiqueta de la etapa Input en el flujo de datos como se muestra en el lienzo de Enterprise Designer.
  • Row es el nombre de la entidad de nivel de registro tal como se especifica en la etapa de entrada del flujo de datos, en el campo Nombre de tipo de datos en la ficha Campos de entrada.
  • FirstName, LastName, AddressLine1, City y StateProvince son campos planos.
  • PhoneNumbers es un campo jerárquico ("lista") que contiene los subcampos denominados HomePhone, CellPhone y OfficePhone.
  • user_fields contiene campos definidos por el usuario que el servicio web traspasa y devuelve en la salida sin modificación.