Upload a flight via API (CSV log verified method)

Geen account nodig Verifieert, slaat op & maakt grafieken

Overzicht

Dit is de programmatische versie van het webuploadprogramma. Het neemt een vluchtlog, verifieert het precies zoals het eindpunt CSV-verificatie, en als het log echt is en nog niet is opgeslagen, voegt het de vlucht toe aan de cloud, genereert het de grafiekminiaturen en geeft het de nieuwe vlucht terug.

Als dezelfde vlucht al is geüpload, wordt deze niet opnieuw toegevoegd. In plaats daarvan wordt de bestaande vlucht teruggegeven, met de vlag duplicate ingesteld. Dit komt overeen met het gedrag van het webprogramma, dus een log opnieuw verzenden is altijd veilig.

Eindpunt

POST https://www.altimetercloud.com/nl/api/upload/ Parameter: csv

Authenticatie

Geen. Uploads zijn anoniem, net als bij het webprogramma. De cryptografische verificatie is de poort: alleen echte, onbewerkte logs van een echte Nano komen erdoor, en duplicaten worden genegeerd, zodat een open eindpunt alleen legitieme logs opslaat. Een vlucht wordt aan zijn apparaat gekoppeld, en de eigenaar van het apparaat kan deze later opeisen door dat apparaat aan zijn Altimeter Cloud-account toe te voegen.

Verzoek

Stuur het vluchtlog, onbewerkt, als multipart-bestandsveld met de naam csv (of flightlog), of als platte-tekst-POST-parameter csv.

curl -X POST https://www.altimetercloud.com/nl/api/upload/ \
  -F "csv=@flight_1234.csv"

Antwoord

De API geeft JSON terug. Wanneer de vlucht nieuw wordt toegevoegd, is duplicate gelijk aan false en zijn de miniaturen zojuist gegenereerd:

✓ Geverifieerd en geüpload
{
  "success": true,
  "verified": true,
  "duplicate": false,
  "verify_method": "Ed25519",
  "flight": {
    "id": 1234,
    "url": "https://www.altimetercloud.com/nl/flights/1234/",
    "firmware": "1.52",
    "hardware": "4",
    "device_tag": "MY-NANO",
    "competitor_tag": "C-07",
    "apogee": 246.4,
    "apogee_time": 5.21,
    "max_velocity": 98.3,
    "samples": 3210,
    "flight_unique_id": "a1b2c3...",
    "thumbnails": {
      "meters_small": "https://www.altimetercloud.com/nl/flightdata/4/1234.webp",
      "meters_large": "https://www.altimetercloud.com/nl/flightdata/4/1234_l.webp",
      "feet_small":   "https://www.altimetercloud.com/nl/flightdata/4/1234_ft.webp",
      "feet_large":   "https://www.altimetercloud.com/nl/flightdata/4/1234_l_ft.webp",
      "miles_small":  "https://www.altimetercloud.com/nl/flightdata/4/1234_mi.webp",
      "miles_large":  "https://www.altimetercloud.com/nl/flightdata/4/1234_l_mi.webp",
      "km_small":     "https://www.altimetercloud.com/nl/flightdata/4/1234_km.webp",
      "km_large":     "https://www.altimetercloud.com/nl/flightdata/4/1234_l_km.webp"
    }
  }
}

Wanneer dezelfde vlucht al bestaat, wordt deze ongewijzigd teruggegeven, met duplicate op true en zonder de miniaturen opnieuw te genereren:

↻ Al opgeslagen
{
  "success": true,
  "verified": true,
  "duplicate": true,
  "verify_method": "Ed25519",
  "flight": { "id": 1234, "url": "https://www.altimetercloud.com/nl/flights/1234/", "...": "..." }
}

Als het log de verificatie niet doorstaat, wordt het niet opgeslagen:

✗ Verificatie mislukt
{
  "success": false,
  "verified": false,
  "error": { "code": "400", "message": "Flight log failed verification" }
}

Omgaan met duplicaten

Een vlucht geldt als al opgeslagen wanneer het apparaat en de handtekening-hash overeenkomen met een reeds geüploade vlucht. In dat geval wordt er niets opnieuw toegevoegd en worden er geen grafieken opnieuw gebouwd; u ontvangt simpelweg het bestaande vlucht-id met duplicate op true.

Antwoordvelden

VeldTypeBeschrijving
successbooleanWaar als het log is geaccepteerd (nieuw opgeslagen of al aanwezig)
verifiedbooleanOf het log de cryptografische verificatie heeft doorstaan
duplicatebooleanWaar als de vlucht al bestond en niet opnieuw is toegevoegd
verify_methodstringGebruikte methode: Ed25519, HMAC-SHA256 of SHA-256
flight.idintegerHet cloud-vlucht-id (nieuw of bestaand)
flight.flight_unique_idstringDe handtekening-hash, bruikbaar met het eindpunt Vluchtinformatie
flight.thumbnailsobjectURL’s van grafiekafbeeldingen in elk formaat
error.code / error.messagestringFoutcode en beschrijving (bij mislukking)

Fouten

CodeBetekenis
400 (verificatie)Het log doorstond de cryptografische verificatie niet en is niet opgeslagen
400 (druk)Het log doorstond de aanvullende drukcontrole niet en is niet opgeslagen
412Er is geen vluchtlog in het verzoek meegestuurd

Een vlucht opeisen

Omdat uploads anoniem zijn, is een vlucht alleen gekoppeld aan het apparaat dat deze heeft opgenomen. Om de vluchten van een apparaat over te nemen, voegt u dat apparaat toe aan uw Altimeter Cloud-account; de vluchten ervan, inclusief die via deze API zijn geüpload, worden dan automatisch opgeëist.

Opmerkingen

De verificatie is hier identiek aan het CSV-verificatie-eindpunt, dus elk log dat daar verifieert, kan hier worden geüpload. Het enige verschil is dat dit eindpunt de vlucht ook opslaat en de grafieken bouwt. Om een log te controleren zonder het op te slaan, gebruikt u in plaats daarvan het CSV-verificatie-eindpunt. Er is geen live speeltuin op deze pagina, omdat elke geslaagde aanroep een echte opgeslagen vlucht aanmaakt.