이 사람의 말을 바탕으로 : http://toddfredrich.com/ids-in-rest-api.html
그가 API 자원을 식별하기 위해 UUID를 사용하는 것이 옳다고 가정합시다. 그런 다음 그런 식으로 구현하려고하면 문제가 발생합니다.
class FooEntity {
final String id = null; //auto-generated by my backend (mongodb), not shared
final UUID uid = UUID.randomUUID(); //the resource id
}
클라이언트와 서버 간에는 데이터베이스 엔터티가 아닌 DTO가 송수신됩니다.
이제 문제는 id
더 이상 사용하지 않기 때문에 유용하지 않다는 것입니다. 클라이언트가 요청을 uid
하므로 왜 2 id를 처리해야합니까? 그런 다음 시작과 같은 문제로 돌아갑니다. UUID를 기본 키 ( _id
) 로 설정 하면 백엔드 ID를 공개합니다.
그 외에도 효율성 주제가 있습니다. ObjectId에 의한 색인 생성이 UUID보다 훨씬 효율적이라는 것을 읽었습니다.