La URL indica el recurso en sí. Un "cliente" es un recurso sobre el que se puede actuar, por lo que debe formar parte de la URL base: /orders/view/client/23
.
Los parámetros son solo eso, parametrizar el acceso al recurso. Esto es especialmente entra en juego con los postes y las búsquedas: /orders/find?q=blahblah&sort=foo
. Hay una línea muy fina entre parámetros y sub-recursos: /orders/view/client/23/active versus /orders/view/client/23?show=active
. Recomiendo el estilo del sub-recurso y los parámetros de reserva para las búsquedas.
Dado que cada extremo representa una transferencia de estado (para modificar el mnemónico), los encabezados personalizados solo deben usarse para cosas que no involucren el nombre del recurso (la URL), el estado del recurso (el cuerpo) o los parámetros directamente afectando el recurso (parámetros). Eso deja metadatos verdaderos sobre la solicitud de encabezados personalizados.
HTTP tiene una amplia selección de encabezados que cubren casi todo lo que necesita. Donde he visto aparecer encabezados personalizados es en un sistema a solicitud del sistema que opera en nombre de un usuario. El sistema de proxy validará al usuario y agregará " X-User: userid
" a los encabezados y usará las credenciales del sistema para llegar al punto final. El sistema receptor valida que las credenciales del sistema están autorizadas para actuar en nombre del usuario, luego valida que el usuario está autorizado para realizar la acción.