RESTful Android API 定义

约定

  • 回复中默认包含标头: Content-Type: application/json;charset=UTF-8

  • 异步操作以(*)号标记

  • 大多数异步操作同时只能有一个任务在进行,以上传联系人为例:

    1. 客户端每次提交 POST /persons/uploader服务器放弃进行中的上传任务而新建;

    2. 客户端可以先访问GET /persons/uploader 获得当前是否有正在上传的任务;

    3. 服务器遇到错误的时候会将任务挂起,返回错误原因,客户端可以选择重试或者终止;

    4. 客户端接收到任务失败的响应后,如果响应中不包括retry的链接,则不应该重试;

  • 授权失败将返回403 Forbidden,客户端应该提示用户进行授权,同时进行重试。

联系人

URI 定义

接口 HTTP method URI
获取所有联系人 GET /persons?pagesize={pagesize}&start={start}
删除所有联系人* POST /persons/purge
上传联系人* POST /persons/uploader
获取联系人信息 GET /persons/{id}
新建联系人 POST /persons
编辑联系人 PUT /persons/{id}
删除联系人 DELETE /persons/{id}

示例

获取所有联系人

GET /persons?pagesize=10&start=0

  1. 200 OK
  2. {
  3. total: 100,
  4. links:
  5. [
  6. {rel: "self", href: "/persons?pagesize=10&start=10"},
  7. {rel: "pre", href: "/persons?pagesize=10&start=0"},
  8. {rel: "next", href: "/persons?pagesize=10&start=20"}
  9. ],
  10. persons:
  11. [
  12. {
  13. link: {rel: "self", href: "/person/1"}, id: "1", name: "Jack"//...
  14. },
  15. {
  16. link: {rel: "self", href: "/person/2"}, id: "2", name: "Lucy"//...
  17. }
  18. ]
  19. }

删除所有联系人*

GET /persons/purge

  1. 200 OK
  2. {
  3. link: {rel: "self", href="/persons/purge/0"} //一般不关心上次任务的状态,所以表述中没有捎带其状态
  4. }

不使用DELETE /persons, /persons资源仍然可以访问

POST /persons/purge

  1. 202 Accpeted
  2. {
  3. link: {rel: "self", href="/persons/purge/0"}
  4. }

GET /persons/purge/0

进行中

  1. 200 OK
  2. {
  3. link: {rel: "self", href="/persons/purge/0"},
  4. state: "pending",
  5. percent: "30"
  6. }

成功

  1. 303 See Other
  2. Location: "/persons"
  3. {
  4. link: {rel: "self", href="/persons/purge/0"},
  5. state: "done"
  6. }

失败

  1. 200 OK
  2. {
  3. links:
  4. [
  5. {rel: "self", href="/persons/purge/0"},
  6. {rel: "retry", href="/persons/purge/0"}
  7. ]
  8. state: "failed",
  9. reason: "XXX",
  10. }

重试

PUT /persons/purge/0

  1. 200 OK

终止

DELETE /persons/purge/0

  1. 200 OK

上传联系人*

GET /persons/uploader

  1. 200 OK
  2. {
  3. link: {rel: "self", href="/persons/uploader/0"}}
  4. }

POST /persons/uploader

[ {name: "Jack"}, {name: "Lucy"}, {name: "Lily"} ]

  1. 202 Accepted
  2. {
  3. link: {rel: "self", href="/persons/uploader/0"}}
  4. }

GET /persons/uploader

进行中

  1. 200 OK
  2. {
  3. link: {rel: "self", href="/persons/uploader/0"},
  4. state: "pending",
  5. percent: "30"
  6. }

成功

  1. 303 See Other
  2. Location: "/persons"
  3. {
  4. link: {rel: "self", href="/persons/uploader/0"},
  5. state: "done"
  6. }

失败

  1. 200 OK
  2. {
  3. links:
  4. [
  5. {rel: "self", href="/persons/uploader/0"},
  6. {rel: "retry", href="/persons/uploader/0"}
  7. ]
  8. state: "failed",
  9. reason: "XXX"
  10. }

重试

PUT /persons/uploader/0

  1. 200 OK

终止

DELETE /persons/uploader/0

  1. 200 OK

获取联系人信息

GET /person/1

  1. 200 OK
  2. {
  3. link: {rel: "self", href: "/person/1"}, id: "1", name: "Jack"//...
  4. }

新建联系人

POST /persons

{ name: "Jack"//... }

  1. 201 Created
  2. {
  3. link: {rel: "self", href: "/person/1"}, id: "1", name: "Jack"//...
  4. }

编辑联系人

PUT /person/1

{ name: "Jack"//... }

  1. 200 OK
  2. {
  3. link: {rel: "self", href: "/person/1"}, id: "1", name: "Jack"//...
  4. }

删除联系人

DELETE /person/1

  1. 200
  2. {
  3. name: "Jack"//...
  4. }

参考

HTTP Method Definitions

转载于:https://www.cnblogs.com/zhengwenwei/p/3570717.html

RESTful Android相关推荐

  1. android 调用restful,android调用springmvc写的restful

    下载srpingmvc的相关jar http://www.cnblogs.com/liuhongfeng/p/4919963.html 配置spingmvc和相关接口 http://blog.csdn ...

  2. Android使用Bmob移动后端云Restful API需要注意的问题

    如果你自己想做一个客户端玩玩,但是又不想去搭建后台服务器,显然Bmob移动后端云是你的最佳选择.官方地址见bmob,文档地址见http://www.bmob.cn/docs.他提供了Android的s ...

  3. laravel android api,Laravel RESTful API与Android应用程序

    我正在使用Laravel 5 Framework开发一个Android应用程序和一个RESTful API. 我在登录活动时遇到了麻烦:流程是用户要求输入第8个字符的代码,并且服务器网络向他发送了一条 ...

  4. android jersey 上传图片,图片上传--Jersey实现RESTful接口

    上次利用SpringMVC实现图片上传,这个是客户端将图片和其他字段一起上传然后一起处理的.(有什么坏处暂时也没有想到)总之这次的希望能够将图片存储的服务独立出来,暂时用Jersey实现一个接口(老大 ...

  5. Swagger 生成 PHP restful API 接口文档

    需求和背景 需求: 为客户端同事写接口文档的各位后端同学,已经在各种场合回忆了使用自动化文档工具前手写文档的血泪史. 我的故事却又不同,因为首先来说,我在公司是 Android 组负责人,属于上述血泪 ...

  6. 电子界卡组构建2019_2018–2019年构建现代Android应用程序的路线图

    电子界卡组构建2019 Kriptofolio应用程序系列-简介 (Kriptofolio app series - Introduction) Welcome to this series of b ...

  7. Android中的网络(字节跳动)

    文章目录 RESTful API 对REST的解释 资源与URI 什么是URI HTTP URL的组成 Http 接口 JSON Http资源 XML JSON Android中对JSON的处理 方法 ...

  8. [转]构建基于WCF Restful Service的服务

    本文转自:http://www.cnblogs.com/scy251147/p/3566638.html 前言 传统的Asmx服务,由于遵循SOAP协议,所以返回内容以xml方式组织.并且客户端需要添 ...

  9. 某小公司RESTful、共用接口、前后端分离、接口约定的实践

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:邵磊 juejin.im/post/59eafab36fb9 ...

最新文章

  1. ImageNet十年,AI数据标注如何蓬勃发展?
  2. 网络爬虫 --DOM处理XML
  3. 全球第三的晶圆代工厂 也要被卖了?
  4. 【完结】如何掌握基于图像和视频的人脸表情识别,这9篇文章可以作为一个参考...
  5. 23种设计模式C++源码与UML实现--组合模式
  6. Spring MVC 中的基于注解的 Controller
  7. 首届Hadoop技术社区中国meetup来袭!对外报名正式启动!
  8. 「镁客·请讲」安智汽车郭健:ADAS是一个链条式的系统,每个模块都必须做好...
  9. Spring4.0学习笔记(3) —— Spring_Bean之间的关系
  10. python删除txt指定内容_python删除文件中指定内容
  11. v4l2视频采集摄像头
  12. (1)FPGA面试题Setup和Holdup时间
  13. 苹果推出App Store搜索建议功能
  14. 幕布(思维导图)官方版 v1.1.15
  15. 6 DHCPV6原理
  16. 华为交换机开启web管理
  17. mysql中工作表工作簿的查询_如何使用SQL语句实现对Excel工作表数据的查询?
  18. Keep it simple stupid
  19. 小米电脑如何把计算机放桌面上,小米电脑怎么把此电脑放到桌面上
  20. 关于软件工程中的银弹

热门文章

  1. vue代理配置(vue+django前后端分离项目)
  2. matlab 人群仿真,用simulink如何实现人群搜索算法的pid参数整定
  3. wsl ubuntu拒绝访问_一起聊聊WSL的那些事儿(下)
  4. 织梦 m list.php tid,在织梦标签dede:list中增加noflag属性的方法支持5.7版本
  5. 普通高中计算机课程软件,普通高中信息技术课程标准(2017 年版)(4):选修课程...
  6. 可变车道怎么走不违章_可变车道怎么才能正确通行?老司机来告诉你什么才是正确的走法。...
  7. 图像处理 区域删除_FotoWorks XL( 图像处理软件 )中文版分享
  8. redis 的一主二从三哨兵模式
  9. OCIEnvCreate failed with return code -1 but error message text was not available with ODP.net
  10. 「镁客·请讲」NOLO VR张道宁:空间定位技术加持下的VR,是可以搞出商业价值的...