Стратегия генерации идентификатора на стороне клиента для веб-службы REST

Допустим, я хочу создать REST-сервис для создания заметок, который выглядит примерно так:

GET    /notes/     // gives me all notes
GET    /notes/{id} // gives the note identified by {id}
DELETE /notes/{id} // delete note

PUT    /notes/{id} // creates a new note if there is no note identified by {id}
                   // otherwise the existing note is updated

Поскольку я хочу, чтобы мой сервис был независимым, я использую PUT для создания и обновления своих заметок, что подразумевает, что идентификаторы новых заметок устанавливаются/генерируются Клиентом.

Я думал об использовании GUID/UUID, но они довольно длинные и затруднят запоминание URL-адресов. Также с точки зрения базы данных такие длинные строковые идентификаторы могут создавать проблемы с точки зрения производительности при использовании в качестве первичного ключа в больших таблицах.

Знаете ли вы хорошую стратегию генерации идентификаторов, которая генерирует короткие идентификаторы и, конечно же, избегает коллизий?

5
задан Zounadire 4 April 2012 в 22:29
поделиться