Nested register and wildcards sometimes mess up
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript
- Área
- api
Línea de trabajo
Comienza con lib/request.js en REQUEST.parseRequest y con index.js en API.run, y luego reproduce las rutas register anidadas que se muestran en el issue. Confirma que la ruta GET se acepta junto con las rutas DELETE y PUT, y añade o actualiza la prueba de routing correspondiente; en el issue no se nombra ningún archivo de prueba.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I'm using register() on multiple depths, to illustrate it's something like this:
api.js:
const api = require('lambda-api')({
base: '/api'
});
api.register(require('./api/user'), { prefix: '/me' });
api/user.js:
module.exports = (api, opts) => {
api.register(require('./user/app'), { prefix: '/apps' });
api/user/app.js:
module.exports = (api, opts) => {
api.get(':app/data', async (req, res) => {
// code
});
api.get(':app/data/:scope', async (req, res) => {
// code
});
api.get(':app/data/:scope/:key', async (req, res) => {
// code
});
api.delete(':app/data/user/:key', async (req, res) => {
// code
});
api.put(':app/data', async (req, res) => {
// code
});
api.put(':app/data/user/:key/:value', async (req, res) => {
// code
});
}
When I do a GET '/api/me/apps/myapp/data/user' which should match the route ':app/data/:scope/:key' however it generated this error:
MethodError: Method not allowed
at REQUEST.parseRequest (/var/task/node_modules/lambda-api/lib/request.js:247:13)
at API.run (/var/task/node_modules/lambda-api/index.js:220:21)
at Runtime.module.exports.handle [as handler] (/var/task/functions/controller/api.js:17:22)
at Runtime.handleOnce (/var/runtime/Runtime.js:66:25) {
method: 'GET',
path: '/api/me/apps/myapp/data/user'
}
When rendering a full list of routes, this is returned:
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ PUT │ /api/me/apps/:app/data ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ GET │ /api/me/apps/:app/data ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ DELETE │ /api/me/apps/:app/data/user/:key ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ PUT │ /api/me/apps/:app/data/user/:key/:value ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ GET │ /api/me/apps/:app/data/:scope ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
║ GET │ /api/me/apps/:app/data/:scope/:key ║
╟──────────┼─────────────────────────────────────────────────────────────────────────╢
So I'd say it should work just fine however it doesn't. However when I remove the "DELETE" and "PUT" methods from code, the GET route starts working. So it seems like the matching doesn't fully work when using nested routes.
- Lenguaje dominante
- JavaScript
- Estrellas
- 1.5k
- Forks
- 127
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de jeremydaly/lambda-api
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
jeremydaly/lambda-api#356 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
jeremydaly/lambda-api#270 ·
-
Logger OutputQuizá libre de nuevo @naorpeled la tomó hace 911 días y no hay ningún pull request abierto. Abierto
jeremydaly/lambda-api#259 · 1 comentario · 1 asignado ·
-
Is it possible to disable versioning?Posiblemente ocupada @naorpeled la tomó hace 105 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
jeremydaly/lambda-api#257 · 5 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 38/100
jeremydaly/lambda-api#251 · 1 comentario ·
Todos los issues de jeremydaly/lambda-api
Issues similares
-
effort:low model:light plan planner:fable-5-1 test-quality tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
area: agent area: theme help wanted lane: free-agent roadmap size: S status: needs-brief type: layout type: task
Dificultad 2/5 1-3 horas Aptitud para principiantes 60/100
arminazimi/slipway#64 ·
-
release:v5.34
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Jason-Vaughan/TangleClaw#2469 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
hacktoberfest help wanted skip-changelog
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
wassim-azi/agy-powerline#74 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
MadeBaruna/paimon-moe#696 ·