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.Spectrum Technology Platform Los servicios web REST tienen un método POST que acepta entradas 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
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
Puede transmitir campos adicionales por medio del servicio web, incluso si el servicio no los usa. 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 que acepte las opciones de la solicitud, abra el servicio en Spectrum Enterprise Designer y seleccione
.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 Spectrum Enterprise Designer y seleccione .
- OptionValue
- Un valor legal para la opción. Para obtener una lista de valores válidos, abra el servicio en Spectrum Enterprise Designer y seleccione .
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>
- 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 a nivel de registro, tal como se especifica en la etapa de entrada del flujo de datos, en el campo Nombre del 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 el nombre de los subcampos HomePhone, CellPhone y OfficePhone.
- user_fields contiene campos definidos por el usuario que el servicio web traspasa y devuelve en la salida sin modificar.