在一个包中处理起草和生产Invenio记录
oarepo-invenio-records-draft的Python项目详细描述
库原则:
草稿记录应遵循与已发布记录相同的json模式,但有一个例外 所有/大多数属性都不是必需的,即使它们被标记为这样
草稿记录应遵循与已发布记录相同的棉花糖架构 一些例外:
< Buff行情>- 所有/大多数属性都不是必需的,即使它们被标记为这样
- 对于附加了验证器的属性,这些验证器将被忽略, 除非它们被明确标记为允许吃水
如果愿意的话,草稿记录可能被配置为完全不遵循模式。在这种情况下, 该记录在ElasticSearch中根本没有索引。
"草稿"记录与已发布的记录位于不同的端点和不同的ES索引。 对于已发布的记录和 /api/drafts/records 用于草稿
草稿和已发布的记录共享相同的pid值,但具有两种不同的pid类型
无法直接创建/更新/修补已发布的记录。草稿记录可以是 创建/更新/修补。
invenio记录包含json负载中的 link 头和 links 节。 已发布记录的链接包含(除了 self ):
< Buff行情>- 草稿 -链接到记录"草稿"版本的URL。此URL存在 仅当记录的草稿版本存在并且调用方具有 编辑草稿
- 编辑 -指向创建记录草稿版本的处理程序的URL,然后 返回http 302重定向到草稿版本。只有当 草稿版本不存在
- 取消发布 -指向创建记录草稿版本的处理程序的URL 如果不存在,则删除已发布的版本,然后将http 302返回草稿。
在草稿记录中, 链接包含(除了 self ):
< Buff行情>- 已发布 -链接到记录的"已发布"版本的URL。此URL存在 o仅当记录的已发布版本存在时
- 发布 -发布到此url的帖子将发布记录。松下和棉花糖 必须传递已发布记录的架构。发布后,草稿记录是 删除。返回的http 302指向已发布的记录。
草稿记录的序列化表示包含名为 invenio_draft_validation 的节。 本节包含棉花糖和jsonschema对原始 模式:
删除已发布的记录不会删除草稿记录。
删除草稿记录不会删除已发布的记录。