Cómo modificar las cabeceras de una petición con nginx

Escenario

Hay que migrar una servicio API a una nueva plataforma. Esto implica rehacer el código desde cero y al mismo tiempo respetar todos los endpoints y aceptar las peticiones de los clientes del API tal y como se estaban mandando hasta ahora.

Problema

Las peticiones del cliente vienen mal formadas: se estaban mandado usando el método POST, usando el valor «POST» para la clave «content-type» de la cabecera. «POST» no es un mime type conocido, por lo que el controlador devolvía una respuesta con el código de error 415 (Unsupported Media Type).

Solución

Para descubrir qué tipo de contenido se estaba mandando, primero tuve que añadir ese dato a los registros de servidor web (nginx): De esta manera pude confirmar que el tipo de contenido enviado era «POST»: Como ya he dicho, uno de los requisitos era respetar la manera en la que el cliente mandaba las peticiones, de modo que tuve que apañármelas a nivel de servidor para que, cuando llegara una petición con una cabecera cuya clave content-type fuera igual a «POST», cambiarla por «application/json». Con nginx es sencillo:

Publicaciones Similares

  • Instalación certificado raíz Comodo

    Escenario Hemos migrado nuestro repositorio de git a un nuevo servidor y tenemos que actualizar las URLs de los orígenes de nuestros repositorios locales. Problema Cambiamos la url remota del repositorio local de git con el comando git remote set-url y, tras hacer un pull git nos devuelve el siguiente error: fatal: unable to access 'https://git.technoage.es/acme.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none Solución Por lo visto nuestra…

  • |

    Traducción de variables en javascript

    Escenario Estoy trabajando en una aplicación multi-lenguaje desarrollada con la plataforma spring boot. Para quien no conozca esta plataforma de desarrollo, spring boot te permite gestionar varios lenguajes gracias a un sistema que utiliza ficheros de tipo propiedades para almacenar las traducciones. Los nombres de estos ficheros han de respetar la siguiente convención, messages_{código ISO…

  • Cómo corregir latencia entre guacamole y vnc con nginx de proxy

    Escenario Hemos configurado un acceso remoto a un ordenador de la oficina usando Guacamole y TightVNC. Apache Guacamole hace de puerta de entrada a un escritorio, sin necesidad de instalar un cliente, basta con un navegador web. Permite protocolos estándares como VNC, RDP, y SSH. Problema Los usuarios reportaban un marcado retraso entre el tecleo…

  • Sonata Admin: el calendario no se cierra

    Escenario Incluir un filtro de rango de fechas en SonataAdmin que use un calendario para seleccionar la fecha es más o menos fácil. Primero añadimos el siguiente bloque en el admin de nuestra entidad:

    Y la siguiente clave bajo form_themesen el fichero config/packages/twig.yaml:

    Problema El calendario no se cierra automáticamente cuando se selecciona…

  • Control de portapapeles en Guacamole + VNC

    Escenario Tenemos montado un acceso remoto al escritorio de una máquina de la oficina usando el protocolo VNC y el cliente web Guacamole. Queremos permitir que los usuarios puedan pegar contenido en el portapapeles del escritorio remoto, pero no puedan llevarse el contenido del portapapeles remoto a su propia máquina. O, dicho de otra manera,…

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *