The Movie Database -tuki

Have been debugging for 4h why Hasura wouldn't accept the TMDB spec, I took a very round about approach to solving my issue as I got an error of Invalid spec: right-hand side of 'in' should be an object, got undefined. In the end I decided to do some simple binary search with a json editor to find the offending path, in 20 minutes I found that the path movie/{movie_id}/changes has no defined response schema object. Leading to that weird error. Why is this? Is there a specific reason or just an oversight? @TravisBell

I got Hasura to parse the schema by removing the content field on the 200 response object in the offending path. Needless to say, I screamed so loudly and ear raped my roommate once I got it working. I've had this issue back in March 2023, but I just got round to taking a look at the project again. Sorry roommate.

6 vastausta (sivulla 1, sivuja yhteensä 1)

Jump to last post

Btw, I used a custom script found in https://chat.openai.com/share/f0818c2d-ab1f-4ae1-b318-ae13306fb72e that removed the examples from all paths as it was causing some memory issues with the Hasura web portal.

const readline = require('readline');

// Function to remove example responses
function removeExampleResponses(oas) {
  if (!oas || typeof oas !== 'object') {
    throw new Error('Invalid input: OAS object is required');
  }

  // Iterate through paths
  for (const path in oas.paths) {
    const pathObject = oas.paths[path];

    // Iterate through HTTP methods (e.g., get, post, etc.)
    for (const method in pathObject) {
      const methodObject = pathObject[method];

      // Check if responses exist
      if (methodObject.responses && typeof methodObject.responses === 'object') {
        // Iterate through response codes
        for (const responseCode in methodObject.responses) {
          const response = methodObject.responses[responseCode];

          // Remove the example property from the response object
          if (response && response.content && response.content['application/json'] && response.content['application/json'].example) {
            delete response.content['application/json'].example;
          }
        }
      }
    }
  }

  return oas;
}

// Read input from stdin
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
});

let input = '';

rl.on('line', (line) => {
  input += line;
});

rl.on('close', () => {
  try {
    const oasInput = JSON.parse(input);
    const oasWithoutExamples = removeExampleResponses(oasInput);
    console.log(JSON.stringify(oasWithoutExamples, null, 2));
  } catch (error) {
    console.error('Error processing input:', error.message);
  }
});

Hi @robigan,

Are you using a current version of the OAS file that can be found here: https://developer.themoviedb.org/openapi ?

I ask because you mention a file from 2023. Since that time in 2023, we have migrated off the old API docs provider, so that file is completely different from what is currently generated.

Yup, using the latest copy of the oas file found there. By 2023 I mean it was the week just after you had posted the new migrations.

Ok, got it.

Well, ya, ReadMe is the one generating those files so there's not much I can do. It's up to them to generate a valid spec. man_shrugging_tone2

@travisbell said:

Ok, got it.

Well, ya, ReadMe is the one generating those files so there's not much I can do. It's up to them to generate a valid spec. man_shrugging_tone2

True, but the response body on the aforementioned route is empty. Even on the official tmdb api viewer. On your side does the response body to that route show up?

How's it look now?

There was an extra object ({}) defined at the beginning of the response that shouldn't have been there.

Etkö löydä elokuvaa tai TV-ohjelmaa? Kirjaudu sisään lisätäksesi se.

Koko sivustolla

s keskitä hakukenttään
p avaa profiilivalikko
esc sulje avoin ikkuna
? avaa pikanäppäinikkuna

Mediasivuilla

b palaa takaisin (tai hakemistoon mikäli mahdollista)
e siirry editoimaan sivua

TV-sarjan kausien sivuilla

(oikea nuolinäppäin) siirry seuraavaan kauteen
(vasen nuolinäppäin) siirry edelliseen kauteen

TV-sarjan jaksojen sivuilla

(oikea nuolinäppäin) siirry seuraavaan jaksoon
(vasen nuolinäppäin) siirry edelliseen jaksoon

Kaikilla kuvasivustoilla

a avaa "lisää kuva" ikkuna

Kaikilla muokkaus-sivuilla

t avaa kielivalinta
ctrl+ s Lähetä lomake

Keskustelu sivuilla

n luo uusi keskustelu
w vaihda seurannan asetus
p vaihda julkinen/yksityinen asetus
c vaihda avaa/sulje asetus
a avaa viimeaikainen toiminta
r vastaa keskusteluun
l siirry viimeisimpään vastaukseen
ctrl+ enter Lähetä viesti
(oikea nuolinäppäin) seuraava sivu
(vasen nuolinäppäin) edellinen sivu

Asetukset

Haluatko pisteyttää vai lisätä tämän nimikkeen listaan?

Kirjaudu

Ei rekisteröitynyt jäsen?

Rekisteröidy ja liity mukaan yhteisöön