He leído que es una mala práctica tener la siguiente URL https://www.example.com/posts/{post_id}
donde post_id
corresponde a la clave principal de la publicación (ver más abajo).
No me importa que los usuarios sepan cuántas publicaciones hay y estoy manejando la autorización en el backend para que un usuario solo pueda acceder a sus publicaciones (así que incluso si un mal actor conoce el post_id de alguien, no tendrá acceso a eso). Estoy usando Postgres y tampoco imagino mover bases de datos.
CREATE TABLE posts ( PRIMARY KEY (post_id), post_id bigint GENERATED ALWAYS AS IDENTITY );
Parece que te has ocupado de las dificultades obvias, pero aun así recomendaría algo menos interpretable.
Después de todo, si alguien sabe que "n" es válido en la URL, puede intentar ingresar usando cualquier valor de 0 - n. Dar tales pistas parece una pista innecesaria para aquellos que tienen intenciones menos que honorables.