首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

利用 Project Zero 和 REST 设计原理创建相册应用程序(2)

利用 Project Zero 和 REST 设计原理创建相册应用程序(2)

将照片共享动作映射到 blog 和文件共享现在可以开始设计应用程序了,方法是构建一个类似  和  的表格,然后看看这些 blog 和文件共享组件已经涵盖了哪些功能以及需要编写什么代码。 描述了需要支持的功能以及它们将如何映射到组件 API 调用:      
表 3. 将照片共享动作映射到 blog 和文件共享照片共享动作底层的动作创建新照片共享帐号创建一个新的 blog 来对照片进行分类
为图像文件创建一个新的文件共享目录          创建新相册创建一个新的 blog 类别          向相册中添加照片将一个图像文件的副本上载到文件共享目录
用指向此图像文件的 <img/> 标记创建一个新的 blog 文章          检索所有照片检索此照片 blog 中的所有 blog 文章           检索整个相册检索给定类别中的所有 blog 文章          检索单个照片检索此照片的 blog 文章           更新单个照片,包括其相册更新此照片的 blog 文章和类别名          删除所有照片删除此照片 blog
可选地,可以连同图像文件删除此文件共享目录          删除整个相册删除此 blog 类别
删除类别中的 blog 文章
可选地,可以删除与这些 blog 文章相关的图像文件          删除单个照片删除此 blog 文章
可选地,可以删除与此 blog 文章相关的图像文件         
说明了只有少数特性需要底层的多个操作,所以需要编写的胶合代码(glue code)数量将会最少。表 4 与表 3 基本相同,只不过描述性文字已经被需要使用的确切 HTTP 方法和 URI 所替代:      
表 4. 将照片共享动作映射到 HTTP 请求照片共享动作底层的动作创建新的照片共享帐户HTTP POST 到 /blogs

HTTP POST 到 /file-shares/user-name创建新相册HTTP POST 到 /blogs/blog-name/categories          向相册中添加照片HTTP POST 到 /files-shares/user-name

HTTP POST 到 /blogs/blog-name/posts          检索所有照片在 /blogs/blog-name 上进行 HTTP GET                     检索整个相册在 /blogs/blog-name/categories/category-name 上进行 HTTP GET                     检索单个照片在 /blogs/blog-name/post/post-id 上进行 HTTP GET                    更新单个照片,包括其相册HTTP PUT 到 /blogs/blog-name/post/post-id删除所有照片在 /blogs/blog-name 上进行 HTTP DELETE                        

在 /file-shares/user-name/photos 上进行 HTTP DELETE          删除整个相册在 /blogs/blog-name/categories/category-name 上进行 HTTP DELETE                        

在 /blogs/blog-name/posts/post-id 上进行 HTTP DELETE                        

在 /file-shares/user-name/photos/photo-file-name 上进行 HTTP DELETE                     删除单个相片在 /blogs/blog-name/posts/post-id 上进行 HTTP DELETE                        

在 /file-shares/user-name/photos/photo-file-name 上进行 HTTP DELETE                     
HTTP 请求的所有特性都可以很容易地利用前面所提到的某一个 Ajax 或 HTTP 客户机库处理;多操作的特性将需要一些胶合代码,确保所有的 HTTP 请求均可成功完成(作为一个 “事务”)。在此处,尚未确立这个照片共享服务独立于 blog 或文件共享的任何特性,所以无需在 Zero 应用程序中创建任何新的 RESTful 资源。
返回列表