Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This article describes the process for getting the output schema for plugins using the REST API.

The GetSchema button sends a POST request to this endpoint:/v3/namespaces/system/apps/pipeline/services/studio/methods/v1/contexts/{namespace}/validations/stage

This endpoint expects a payload with the stage to validate and the inputSchemas to this stage. The stage object can be directly copied from the pipeline json and the inputSchemas can be left empty since it is a source. Example payload:

Code Block
languagejson
{
    "stage":{
        "name": "BigQuery",
        "plugin": {
            "name": "BigQueryTable",
            "type": "batchsource",
            "label": "BigQuery",
            "artifact": {
                "name": "google-cloud",
                "version": "0.14.6",
                "scope": "SYSTEM"
            },
            "properties": {
                "project": "auto-detect",
                "serviceFilePath": "auto-detect",
                "datasetProject": "meseifan-test",
                "dataset": "GCPQuickStart",
                "table": "ADT_Out",
                "referenceName": "test"
            }
        },
        "outputSchema": [
            {
                "name": "etlSchemaBody",
                "schema": ""
            }
        ]
    },
    "inputSchemas":[]
}

The response will be a fully populated stage object, one of the fields is "outputSchema" which will contain the schema of the input you are attempting to use. Example response:

Code Block
languagejson
{
  "spec": {
    "name": "BigQuery",
    "plugin": {
      "type": "batchsource",
      "name": "BigQueryTable",
      "properties": {
        "serviceFilePath": "auto-detect",
        "project": "auto-detect",
        "datasetProject": "meseifan-test",
        "dataset": "GCPQuickStart",
        "table": "ADT_Out",
        "referenceName": "test"
      },
      "artifact": {
        "name": "google-cloud",
        "version": {
          "version": "0.14.6",
          "major": 0,
          "minor": 14,
          "fix": 6
        },
        "scope": "SYSTEM"
      }
    },
    "outputSchema": {
      "type": "record",
      "name": "output",
      "fields": [
        {
          "name": "SRC_NTW_ID_",
          "type": [ "string", "null" ]
        },
        {
          "name": "NTW_CUST_NUM_",
          "type": [ "long", "null" ]
        },
        {
          "name": "NTW_CS_NO",
          "type": [ "string", "null" ]
        },
        {
          "name": "SRC_NTW_ID_masked",
          "type": [ "string", "null" ]
        },
        {
          "name": "NTW_CS_NO_masked",
          "type": [ "string", "null" ]
        }
      ]
    },
    "inputSchemas": {},
    "outputPorts": {},
    "portSchemas": {},
    "stageLoggingEnabled": true,
    "processTimingEnabled": true,
    "maxPreviewRecords": 100,
    "inputStages": [],
    "failures": [],
  }
}