Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

216
Vistas
¿Cómo definir el punto final de la función Netlify como POST?

Soy nuevo en serverless y estoy tratando de entenderlo. Así que he creado una función en netlify usando GET y funciona bien.

Luego, quería un punto final POST , así que seguí el mismo formato y creé una función similar. Pero luego envié una solicitud POST a esta nueva función. Al revisar console.log en el servidor, me doy cuenta de que se lee como una solicitud con un método GET (httpMethod: 'GET'). Y luego me di cuenta de que no había definido el método de punto final que habría hecho en un servidor normal.

Pero no tengo idea de cómo hacer eso.

Pregunta

¿Hay alguna forma diferente de hacer una función GET y una función POST en netlify o sin servidor?

Si la respuesta es Sí, entonces por favor guíeme en esto.

Si la respuesta es No, y las funciones están escritas de la misma manera, ¿alguien puede decirme por qué netlify lee mi solicitud POST como GET ?

Aquí está el código de la función en codesandbox .. https://codesandbox.io/s/serverless-function-2xebuf?file=/src/index.js

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Publicar la respuesta a esto para que me sirva como recordatorio y si ayuda a alguien en el futuro que tenga problemas similares.

Gracias a @alessiopremoli por compartir que no se puede definir explícitamente a qué verbo debe responder el controlador de función ... eso respondió a mi primera pregunta: ¿Hay alguna forma diferente de hacer una función GET y una función POST en netlify o sin servidor?

El segundo problema al que me enfrenté fue que mi solicitud POST estaba siendo leída por netlify como GET ... Me di cuenta de cuál era el problema... hay una configuración para las reglas de redirección en el archivo netlify.toml que simplifica la URL a la API... puede escribir "site.com/api/functionName.js" en lugar de "site.com/.netlify/functions/functionName.js"

 [[redirects]] from = "/*" to = "/blog/:splat"

y estaba usando esto para mis rutas api como

 [[redirects]] from="/api/*" to="/.netlify/functions/:splat"

para simplificar el acceso a mi ruta api... pero no me di cuenta de que, de manera predeterminada, el código de estado para esta redirección es 301, lo que cambia el método a GET y esto también cambia el método de mi solicitud. Entonces, para aquellos que enfrentan este problema, espero que esto ayude.

Si se trata de una solicitud POST y está utilizando una opción de redirección, asegúrese de agregar el estado de 200 o simplemente llame a la función utilizando la ruta predeterminada que ha establecido, por ejemplo, "site.com/.netlify/functions/functionName.js"

Entonces, cambiar la regla de redirección a la que se muestra a continuación solucionó el problema para mí

 [[redirects]] from="/api/*" to="/.netlify/functions/:splat" status=200

Aquí está el enlace al equipo de soporte de netlify que ayudó a resolver este problema que lo explica mejor ( https://answers.netlify.com/t/does-using-the-redirects-route-to-a-function-call-change- el-método-de-la-solicitud-desde-post-to-get/55760/5 )

about 4 years ago · Juan Pablo Isaza Denunciar

0

Según mi experiencia, no puede definir explícitamente a qué verbo debe responder el controlador de función, generalmente configuro una verificación en el verbo de evento:

 if (event.httpMethod !== 'POST') { return { statusCode: 501, body: JSON.stringify({ message: "Not Implemented" }), headers: { 'content-type': 'application/json' } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda