Estoy configurando una API en NextJS. Actualmente, tengo una carpeta de rutas/clases. En esta carpeta, tengo index.js y [id].js. 1
El propósito de /classes/ es obtener todas las clases en la base de datos o publicar una nueva clase. El propósito de /classes/[id] es obtener la clase específica, editarla o eliminarla. Mi problema es que cuando intento obtener una clase por id, devuelve todas las clases del archivo index.js. ¿Alguna idea sobre lo que me estoy perdiendo?
índice.js
if (req.method === 'GET') { try { console.log('in index get') const allClasses = await db.collection('classes').orderBy('name').get() const classes = allClasses.docs.map((doc) => { return { id: doc.id, ...doc.data() } }) res.status(200).json(classes) } catch (error) { res.status(400).json({ error: error.message }) } } else if (req.method === "POST") { try { await db.collection('classes').add({ ...req.body, lastUpdated: new Date().toISOString() }) res.status(200).json({ message: 'New Class Created' }) } catch (e) { res.status(500).json({ error: 'There was an error adding class' }) } }[id].js
switch (method) { case 'GET': try { console.log('in id get') const classById = await db.collection('classes').doc(id).get().data() res.status(200).json(classById) } catch (error) { res.status(400).json({ error: `Class does not exist` }) } break; case 'DELETE': try { await db.collection('classes').doc(id).delete() res.status(200).json({ message: 'Class Deleted Successfully' }) } catch (error) { res.status(400).json({ error: `Class does not exist` }) } break; case 'PUT': try { await db.collection('classes').doc(id).update({ ...req.body, lastUpdated: new Date().toISOString() }) res.status(200).json({ message: 'Class Updated Successfully' }) } catch (error) { res.status(400).json({ error: `Class does not exist` }) } break; default: res.setHeader('Allow', ['GET', 'PUT', 'DELETE']) res.status(405).end(`Method ${method} Not Allowed`) break; }De tu comentario
{{localhost}}/api/clases/?id=DSGY9jjuY43M210uFg1U
Intenta hacer esto en su lugar:
{{localhost}}/api/classes/DSGY9jjuY43M210uFg1U