Skip to content

Source Connector: Star Wars API ​

The Star Wars API source connector is a demonstration connector that fetches data from the public Star Wars API (https://swapi.info). It's designed for testing, development, and learning purposes, providing a simple way to test DataBridge pipelines without requiring access to production systems.

WARNING

Not for production use. This demo connector is intended for learning/testing only and uses a fixed base URL (swapi.info) without environment overrides.

Overview ​

This connector serves as an excellent starting point for learning DataBridge and testing pipeline configurations. It retrieves character data from the Star Wars universe and demonstrates key concepts data transformation, and API integration.

Configuration ​

Required Parameters ​

Set the connector attribute to star_wars_api.

dataset_prefix (string)

Prefix for the output dataset names

Configuration Example ​

json
{
  "version": 1,
  "source_connectors": [
    {
      "connector": "star_wars_api",
      "configuration": {
        "dataset_prefix": "example_run"
      }
    }
  ]
}

Data Structure ​

Character Data ​

The connector retrieves comprehensive character information from the Star Wars universe and delivers in the following format:

json
{
  "name": "Luke Skywalker",
  "height": "172",
  "mass": "77",
  "hair_color": "blond",
  "skin_color": "fair",
  "eye_color": "blue",
  "birth_year": "19BBY",
  "gender": "male"
}

Dataset Naming ​

The connector creates datasets with names based on the configured prefix:

  • Output Dataset: {dataset_prefix}_star_wars_people
  • Example: With prefix "example_run", the dataset will be named "example_run_star_wars_people"

Integration Examples ​

Basic Pipeline ​

json
{
  "version": 1,
  "source_connectors": [
    {
      "connector": "star_wars_api",
      "configuration": {
        "dataset_prefix": "sw_demo"
      }
    }
  ],
  "transformations": [
    {
      "name": "Filter valid height",
      "input_data_frames": [
        "sw_demo_star_wars_people"
      ],
      "output_data_frame": "characters_valid_height",
      "type": "sql_inline",
      "configuration": {
        "statement": "SELECT *, CAST(height AS INTEGER) as n_height FROM sw_demo_star_wars_people WHERE TRY_CAST(height AS INTEGER) IS NOT NULL"
      }
    },
    {
      "name": "Filter only tall characters",
      "input_data_frames": [
        "characters_valid_height"
      ],
      "output_data_frame": "tall_characters",
      "type": "sql_inline",
      "configuration": {
        "statement": "SELECT * FROM characters_valid_height WHERE n_height > 200"
      }
    }
  ]
}