Para nuestro servicio REST, quiero enviar una identificación de solicitud única con cada respuesta; útil para depurar proyectos internos, pero también para ofrecer soporte a terceros que puedan usar el servicio en el futuro.
He decidido que necesito usar un encabezado de respuesta, ya que no todas las solicitudes REST deben dar como resultado un cuerpo de respuesta (a menudo, las API REST de nivel inferior se aprovechan únicamente del código de estado y la descripción), pero aún así tendrían que devolver esta solicitud CARNÉ DE IDENTIDAD.
Quiero asegurarme, si es posible, de que uso un Encabezado de respuesta HTTP que es improbable que sea eliminado por cualquier proxy en el camino.
Esto podría ser muy importante ya que un gran número de clientes probablemente serán dispositivos móviles con lo que seguramente serán topologías de red "interesantes" entre ellos y nuestros servidores.
Sin embargo, es probable que los mismos servicios también se comercialicen a otras empresas con sus propios servidores de seguridad / servidores proxy corporativos.
Debido a esto, básicamente he descartado la idea de usar un encabezado de respuesta personalizado en favor de un encabezado conocido.
Mi encabezado conocido ganador actual sería el ETag
encabezado, pero aunque es casi correcto, no es del todo, porque un ETag
es para un recurso, no una solicitud (es decir, dos solicitudes separadas para el mismo recurso legítimamente devolverán lo mismo ETag
). Además, si uso eso, significará que no puedo hacer ningún etiquetado de entidad para otra cosa.
Alguien tiene alguna idea mejor?
Actualizar
El encabezado de Pragma, al parecer, podría usarse, pero tengo problemas para escribir en el WebAPI de Asp.Net. Aquí hay una pregunta relacionada sobre SO .
fuente
Echa un vistazo a las pautas del equipo de Heroku. Entre otras cosas, como Etags, sugieren un Id. De solicitud en el encabezado. Estamos buscando implementar la mayoría de estas pautas cuando tengan sentido.
https://github.com/interagent/http-api-design/blob/master/README.md
fuente