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 JSON.Spectrum Technology Platform Los servicios web REST tienen un método POST que acepta entradas en formato JSON. Especifique Content-Type:application/json
y utilice el siguiente formato para las solicitudes JSON POST.
Datos planos
Utilice este formato en la solicitud de cuerpo para enviar datos planos a un servicio web mediante POST.
{ "InputStageName": { "InputDataType": [ { "FieldName1": "FieldValue1", "FieldName2": "FieldValue2" } ] } }
Donde:
- InputStageName
- El nombre de la etapa Input, como se muestra en el lienzo en Spectrum Enterprise Designer. El nombre predeterminado de la etapa es Input.
- InputDataType
- El nombre asignado a una entidad de nivel de registro. Este valor se especifica en la etapa Input del flujo de datos, en el campo Nombre de tipo de datos en la ficha Campos de entrada. El nombre predeterminado de la entidad de nivel de registro es Row.
- FieldName1 y FieldName2
- Los nombres de los campos de entrada definidos en la etapa de entrada del servicio.
- FieldValue1 y FieldValue2
- Datos de entrada que desea enviar al servicio web en el campo correspondiente.
Datos de lista
Utilice el siguiente formato para enviar datos de lista a un servicio web con POST.
{ "InputStageName": { "InputDataType": [ { "ListField1":[ {"SubfieldName1": "SubfieldValue1"}, {"SubfieldName2": "SubfieldValue2"} ] } ] } }
Donde:
- InputStageName
- El nombre de la etapa Input, como se muestra en el lienzo en Spectrum Enterprise Designer. El nombre predeterminado de la etapa es Input.
- ListField1
- El nombre del campo jerárquico definido en la etapa de entrada del servicio.
- SubfieldName1 y SubfieldName2
- Los nombre de los campos secundarios que componen el campo de lista.
- SubfieldValue1 y SubfieldValue2
- Datos de entrada que desea enviar al servicio web.
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.
{ "InputStageName": { "InputDataType": [ { "user_fields": [ { "name": "FieldName1", "value": "FieldValue1" }, { "name": "FieldName2", "value": "FieldValue2" }] } ] } }
Donde:
- InputStageName
- El nombre de la etapa Input, como se muestra en el lienzo en Spectrum Enterprise Designer. El nombre predeterminado de la etapa es Input.
- FieldName1 y FieldName2
- El nombre del campo de traspaso.
- FieldValue1 y FieldValue2
- Los datos que desea incluir en el campo de traspaso.
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:
"options" : { "OptionName1" : "Value1" },
Donde:
- OptionName1
- 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 .
- OptionValue1
- Un valor legal para la opción. Para obtener una lista de valores válidos, abra el servicio en Spectrum Enterprise Designer y seleccione .
Ejemplo Solicitud JSON 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 JSON en un servicio web utilizando POST.
{ "options" : { "OutputCasing" : "U" }, "Input": { "Address": [ { "AddressLine1": "1825 Kramer Ln", "City": "Austin", "StateProvince": "TX", "Accounts": [ { "AccountNumber": "120993", "ExpirationDate": "10-3-2017" }, { "AccountNumber": "898732", "ExpirationDate": "8-13-2016" } ], "user_fields": [ { "name": "Note1", "value": "Prefers decaffeinated coffee" }, { "name": "Note2", "value": "Requests east facing window" }] } ] } }
- 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.
- Address 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.
- AddressLine1, City y StateProvince son campos planos.
- Accounts es un campo jerárquico (“lista”) que contiene el nombre de los subcampos AccountNumber y ExpirationDate. En este ejemplo se incluyen dos cuentas.
- user_fields contiene campos definidos por el usuario que el servicio web traspasa y devuelve en la salida sin modificar.