An explicit revision is created only when a user requests it. A custom method takes a snapshot of the resource at that moment, rather than creating revisions automatically whenever the resource changes. section 28.3.2
Use explicit revisions when automatic creation would be unnecessary or wasteful:
- Give the user responsibility for deciding when a revision is worth preserving. section 28.3.2
- Expose a custom create-revision method with one responsibility: snapshot the current resource. section 28.3.2
- Assign a randomly generated revision identifier and persist the creation timestamp when the revision is stored. section 28.3.2
Message revision endpoint
A chat-room API can expose POST /{id=chatRooms/*/messages/*}:createRevision. The request supplies the message ID; the response is a message carrying revisionId and revisionCreateTime. section 28.3.2
Use the flow diagram to trace how an explicit request produces a resource revision. section 28.3.2
