SpaceX-API: Upcoming breaking changes - v4.1.0

Intro

This is to provide some advanced warning for some breaking changes slated for v4.1.0

Currently all the breaking changes are in the /v4/launches endpoint, and are schema changes to support additional data going forward.

Changes

Launches - Fairings

Old format:

{
  "fairings": {
    "reused": false,
    "recovery_attempt": true,
    "recovered": true,
    "ships": [
      "5ea6ed2e080df4000697c908",
      "5ea6ed2f080df4000697c90c"
    ]
  }
}

This doesn’t account for individual fairing half recoveries, or reuse tracking per half. Moving forward, fairings will be tracked in an endpoint similar to how cores, capsules, etc… are tracked currently.

New format:

{
  "fairings": [
    {
      "fairing": "5ea6ed30080df4000697c913",
      "flight": 3,
      "reused": true,
      "net_attempt": true,
      "net_landing": true,
      "water_attempt": false,
      "water_landing": false,
      "recovered": true,
      "ships": [
        "5ea6ed2f080df4000697c90d"
      ]
    },
    {
      "fairing": "6e46ed30080df4781697c913",
      "flight": 3,
      "reused": true,
      "net_attempt": true,
      "net_landing": true,
      "water_attempt": false,
      "water_landing": false,
      "recovered": true,
      "ships": [
        "5ea6ed30080df4000697c913"
      ]
    }
  ]
}

Launches - Crew

The current crew implementation doesn’t allow for launch specific information like mission role, or other info that could vary from launch to launch.

Old format:

{
  "crew": [
    "5fe3c587b3467846b3242198",
    "5fe3c5beb3467846b3242199",
    "5fe3c5f6b3467846b324219a"
  ]
}

New format:

{
  "crew": [
    {
      "crew": "5fe3c587b3467846b3242198",
      "role": "Commander"
    },
    {
      "crew": "5fe3c5beb3467846b3242199",
      "role": "Pilot"
    },
    {
      "crew": "5fe3c5f6b3467846b324219a",
      "role": "Mission Specialist 1"
    }
  ]
}

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 2
  • Comments: 33 (24 by maintainers)

Most upvoted comments

Still need to gather + add all the fairing data, so it might be a few weeks. Once I have a concrete timeline, I’ll tag a bunch of people, so there’s plenty of warning.

As far as the fairings go, going to stick with the current implementation.

Forgot that those crew changes were a part of this issue too, so I’ll close this and open a separate one for those changes.

@zacdevil10 Ah, we added that field in a separate issue, and somehow it didn’t get added.

Stage is updated with all the fields now 🙃

Here’s some field explanations to clarify the meaning a bit better:

  • ships contains the id’s of ships involved in the recovery of that specific fairing half
True False Null
Net Attempt A ship attempted to catch the fairing with a net No ship attempted a fairing catch with a net Net attempt unknown
Net Landing The fairing was caught in a net The fairing was not caught in a net Net landing unknown
Water Attempt There was a planned ocean landing There was not a planned ocean landing Water attempt unknown
Water Landing The fairing landed in the water during a planned recovery The fairing did not land in the water during a planned recovery Water landing unknown
Recovered The fairing was recovered by a ship The fairing was not recovered by a ship Unknown if recovered
Reused The fairing was used on a previous flight The fairing is brand new Unknown if reused

Thank you, I will try to update my library soon. @AzuxDario, you should it read too.

I have the bit written to transform the launches output to be backwards compatible, but still need to write the equivalent for input.

Otherwise when v4 is queried, it needs to be transformed the the opposite way to something the new schema will understand. More complex than anticipated 😬

Hoping to get it figured out this weekend, but we’ll see

All SpaceX add-on on Ms.Tree and Ms.Chief were removed and Musk confirms that all fairings from now will be recovered from water.

No problem, just to know when to switch between the two versions. Thanks!

@jakewmeyer thanks for clearing that up - makes complete sense!

@zacdevil10 Whoops, updated

Was on the fence about that, but I think keeping the old behavior for dragon launches is more clear than an empty array. The states would look like the following:

  1. State for all launches without fairings (including Dragon)
{
  "fairings": null
}
  1. State for new launches with fairings, identical to how the cores array works.
{
  "fairings": [
    {
      "fairing": null,
      "flight": null,
      "reused": null,
      "net_attempt": null,
      "net_landing": null,
      "water_attempt": null,
      "water_landing": null,
      "recovered": null,
      "ships": []
    },
    {
      "fairing": null,
      "flight": null,
      "reused": null,
      "net_attempt": null,
      "net_landing": null,
      "water_attempt": null,
      "water_landing": null,
      "recovered": null,
      "ships": []
    }
  ]
}