Solicitud JSON 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 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 de entrada como se muestra en el lienzo en Enterprise Designer. El nombre predeterminado de la etapa es .
InputDataType
El nombre asignado a una entidad de nivel de registro. Este valor 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. El nombre predeterminado de la entidad de nivel de registro es .
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

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.

{
  "InputStageName": 
  {
    "InputDataType": [
      {
        "ListField1":[
          {"SubfieldName1": "SubfieldValue1"},
          {"SubfieldName2": "SubfieldValue2"}
        ]
      }
    ]
  }
}

Donde:

InputStageName
El nombre de la etapa de entrada como se muestra en el lienzo en Enterprise Designer. El nombre predeterminado de la etapa es .
InputDataType
El nombre asignado a una entidad de nivel de registro. Este valor 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. El nombre predeterminado de la entidad de nivel de registro es .
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

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.

{
  "InputStageName": 
  {
    "InputDataType": [
      {
        "user_fields": [
        {
          "name": "FieldName1",
          "value": "FieldValue1"
        },
        {
          "name": "FieldName2",
          "value": "FieldValue2"
        }]
      }
    ]
  }
}

Donde:

InputStageName
El nombre de la etapa de entrada como se muestra en el lienzo en Enterprise Designer. El nombre predeterminado de la etapa es .
InputDataType
El nombre asignado a una entidad de nivel de registro. Este valor 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. El nombre predeterminado de la entidad de nivel de registro es .
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 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:

"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 Enterprise Designer y seleccione Editar > Opciones de flujo de datos.
OptionValue1
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.

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"
        }] 
      }
    ]
  }
}
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.
  • es el nombre de la entidad a nivel de registro tal como se especifica en la etapa Input del flujo de datos, en el campo Data type name en la ficha Campos de entrada.
  • AddressLine1, City y StateProvince son campos planos.
  • Accounts es un campo jerárquico ("lista") que contiene los nombres 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 modificación.