Apuja amatöörille

101 views
Skip to first unread message

Jari Saari

unread,
Jul 24, 2024, 1:22:40 PM7/24/24
to rata.digitraffic.fi
Koodaustaitoni on vanhentuneet, eikä ole aikaa opetella. Perusasiat on hallussa, esim Basic ja C++, mutta tätä en osaa korjata. Ammattilainen toteuttaa suunnittelemani sovelluksen, mutta haluaisin itse saada hakutuloksia, että voin paremmin kertoa mitä sovellukselta haluan.

Tässä tekoälyn luoma PHP-pätkä, joka ei toimi. Jos tähän sais apuja, niin olisin kiitollinen.


<?php

// Määritetään URL-osoite ja otsikot
$url = "https://rata.digitraffic.fi/api/v2/graphql/graphql";
$headers = array(
    "Content-Type: application/json",
    "Accept-Encoding: gzip"
);

// Määritetään GraphQL-kysely JSON-muodossa
$data = json_encode([
    "query" => "{
        trainsByDepartureDate(departureDate:\"2024-07-24\")
    }"
]);

// Luodaan cURL-istunto
$ch = curl_init($url);

// Asetetaan otsikot
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

// Asetetaan POST-pyynnön data
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// Asetetaan POST-pyyntö
curl_setopt($ch, CURLOPT_POST, 1);

// Asetetaan gzip-puristus
curl_setopt($ch, CURLOPT_ENCODING, "gzip");

// Palauta vastaus merkkijonona
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Suorita cURL-pyyntö
$response = curl_exec($ch);

// Tarkista virheet
if (curl_errno($ch)) {
    echo "cURL-virhe: " . curl_error($ch);
} else {
    // Pura JSON-vastaus
    $responseData = json_decode($response, true);

    // Käsittele vastaus
    print_r($responseData);
}

// Suljetaan cURL-istunto
curl_close($ch);
?>

rata.digitraffic.fi

unread,
Jul 25, 2024, 4:39:39 AM7/25/24
to rata.digitraffic.fi

Hei,

ainakaan GraphQL-kyselysi ei palauta mitään, koska siinä ei valita mitään palautettavia kenttiä.

Kokeile vaikka:

"query" => "{
  trainsByDepartureDate(departureDate: \"2024-07-24\") {
    trainNumber
    cancelled
  }
}"

Ystävällisin terveisin / Best regards
– Digitraffic asiakastuki / Digitraffic support –

Jari Saari

unread,
Jul 25, 2024, 5:53:19 AM7/25/24
to rata.digitraffic.fi
Antaa virheilmoituksen;  

currently unable to handle this request.

HTTP ERROR 500

Mikä ihme tässä on väärin, sillä virhe paikallistettu alla olevaan koodinpätkään, joka lainattu Digitrafficin sivulta;
Ja voidaan skipata OS ja palvelimen PHP-tuki kyselyt, sen verran olen kartalla.

$data = json_encode([

   "query" => "{
  trainsByDepartureDate(
    departureDate: "2024-07-25",
    where: {and: [ {operator: {shortCode: {equals: "vr"}}}, {commuterLineid: {unequals: "Z"}}]},
    orderBy: {trainNumber: DESCENDING})
  {
    trainNumber
    departureDate
    commuterLineid
    operator {
      shortCode
    }
  }
}"
]);

rata.digitraffic.fi

unread,
Jul 25, 2024, 8:18:05 AM7/25/24
to rata.digitraffic.fi
Lieköhän tuossa syynä puuttuvat escape-kenoviivat ennen heittomerkkejä.

GraphiQL-käyttöliittymän avulla voit myös kokeilla onko kysely validi (toisin kuin JSON-viestissä, käyttöliittymässä ei pidä escapettaa heittomerkkejä): https://rata.digitraffic.fi/api/v2/graphql/graphiql

Ystävällisin terveisin / Best regards
– Digitraffic asiakastuki / Digitraffic support –

rata.digitraffic.fi

unread,
Jul 25, 2024, 8:23:00 AM7/25/24
to rata.digitraffic.fi
Korjataan vielä että kyse oli siis lainausmerkeistä " eikä heittomerkeistä ’ :)

Ystävällisin terveisin / Best regards
– Digitraffic asiakastuki / Digitraffic support –

Jari Saari

unread,
Aug 23, 2024, 1:12:44 AM8/23/24
to rata.digitraffic.fi
Terve.

Saisinko jonkinlaisen, yksinkertaisen ja toimivan kyselyesimerkin, kun tämä on minulla "vähän" opetteluvaiheessa.
En siis tiedä syntaksia, eli minkä lainausmerkkien eteen pitää laittaa "escape kenoviivat".
Mutta jos saan mainitsemani esimerkin, niin siitä varmaan selviää.

Ohjelmoinnin olen aloittanut joskus 1982, mutta tippunut auttamattomasti kärryiltä nykytekniikoista.
Tarvitsisin vain vähän vinkkejä että voin laatia alustavan esimerkin ohjelmistofirmalle joka sovellukseni toteuttaa.

t. Jari
Reply all
Reply to author
Forward
0 new messages