¿Desea identificar los identificadores de recursos numéricos o de cadena?

Estoy investigando para ayudarme a desarrollar una API REST y este es un tema que no he visto en profundidad en ningún lugar.

Si tengo un usuario en el sistema, ¿es mejor identificar al usuario usando un identificador numérico?

/ usuarios / 1

¿O usando un identificador de cadena?

/ usuarios / RSmith

Puedo ver hipotéticos pros y contras potenciales para cada enfoque, los identificadores de cadena son más legibles para los humanos, menos detectables (no se pueden incrementar para encontrar usuarios válidos) y no requieren el almacenamiento de otra identificación numérica en la base de datos (no lo haría desea exponer los identificadores de base de datos a través de la API). Los identificadores numéricos no tienen un significado inherente y, debido a eso, se puede garantizar que son inmutables, mientras que con una identificación de cadena el usuario puede querer cambiar el nombre del recurso, cambiando así el URI del recurso.

¿Hay una mejor práctica de REST aquí o el mejor enfoque varía de un sistema a otro? En este último caso, ¿hay ventajas y desventajas adicionales asociadas con cada método?

Respuestas a la pregunta(2)

Su respuesta a la pregunta