Client generated identifiers in URIs have pros and cons.
Pros:
Might appeal to users (looks nicer)
It's useful or debugging purposes. No-one will remember server-generated URIs
someone some day may need to write that URI somewhere manually
Cons:
you don't want the users dictate how you index your database. If user can decide the URI components, can't use them as such but need additional level of indirection for routing and IDs.
you may not want to reflect logical hierarchies of the program in the URIs. URLs should include only the minimal amount of information to locate the right database record.
short IDs are actually often useful even human users
One compromise:
URIs with both server- and human-readable parts. http://example.com/theserverid/user-friendly-name
From WISHI discussions with @ektrah.
Client generated identifiers in URIs have pros and cons.
Pros:
Cons:
One compromise:
http://example.com/theserverid/user-friendly-name