Scratch3 技术分析之 backpack(书包) API(第 9 篇)
文章目录
本文是Scratch3.0 技术分析之后端 API系列的第 9 篇。
backpack(书包)
backpack(书包)是Scratch3 创作平台的组成部分。
backpack(书包)是这样一种工具: 用户可以把 Ta 常用的素材放置在书包里,需要的时候取出来,用于项目创作,可以看出,书包是非常恰当的比喻。可以往书包放置的东西包括积木、角色、舞台背景。 当我们把角色放置到背包中时,角色相关的程序也会被一并保存。
API 分析
Get backpack
GET https://backpack.scratch.mit.edu/wwj718?limit=20&offset=0
response 为:
从 url 可以看出,backpack 与 username 有关,与 project id 无关。站在产品视角上我们可以这样描述: 每个用户有一个书包,用户在不同项目中,看到的是同一个书包。
添加 Sprite 到书包
让我们将一个 Sprite(精灵)添加到书包中,精灵是一个箭头,并带有一个积木程序。
发生的 url 请求为:
POST https://backpack.scratch.mit.edu/wwj718
提交的数据为:
response 为:
|
|
同时在书包中生成了一个精灵缩略图:https://backpack.scratch.mit.edu/4c464e3fe55b9f30ce9ad5d9ce727498.jpeg
从书包拖动精灵到舞台
以前头的箭头精灵为例
GET https://backpack.scratch.mit.edu/0f4284bdddd95a9da7dc075419c8c09b.zip
删除背包中的精灵
以前头的箭头精灵为例
DELETE https://backpack.scratch.mit.edu/wwj718/5cea9b48-bfd0-45c2-b7de-f16625e183ae
response: {"ok":true}
精灵与积木
书包中既可以容纳精灵又可以容纳积木,API完全相同。差异在于精灵和积木的序列化表示有不同,精灵存成zip数据,积木存为json数据。
文章作者 种瓜
上次更新 2019-05-01