RESTful Android
RESTful Android API 定义
约定
回复中默认包含标头: Content-Type: application/json;charset=UTF-8
异步操作以(*)号标记
大多数异步操作同时只能有一个任务在进行,以上传联系人为例:
客户端每次提交 POST /persons/uploader服务器放弃进行中的上传任务而新建;
客户端可以先访问GET /persons/uploader 获得当前是否有正在上传的任务;
服务器遇到错误的时候会将任务挂起,返回错误原因,客户端可以选择重试或者终止;
客户端接收到任务失败的响应后,如果响应中不包括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
200 OK
{
total: 100,
links:
[
{rel: "self", href: "/persons?pagesize=10&start=10"},
{rel: "pre", href: "/persons?pagesize=10&start=0"},
{rel: "next", href: "/persons?pagesize=10&start=20"}
],
persons:
[
{
link: {rel: "self", href: "/person/1"}, id: "1", name: "Jack"//...
},
{
link: {rel: "self", href: "/person/2"}, id: "2", name: "Lucy"//...
}
]
}
删除所有联系人*
GET /persons/purge
200 OK
{
link: {rel: "self", href="/persons/purge/0"} //一般不关心上次任务的状态,所以表述中没有捎带其状态
}
不使用DELETE /persons, /persons资源仍然可以访问
POST /persons/purge
202 Accpeted
{
link: {rel: "self", href="/persons/purge/0"}
}
GET /persons/purge/0
进行中
200 OK
{
link: {rel: "self", href="/persons/purge/0"},
state: "pending",
percent: "30"
}
成功
303 See Other
Location: "/persons"
{
link: {rel: "self", href="/persons/purge/0"},
state: "done"
}
失败
200 OK
{
links:
[
{rel: "self", href="/persons/purge/0"},
{rel: "retry", href="/persons/purge/0"}
]
state: "failed",
reason: "XXX",
}
重试
PUT /persons/purge/0
200 OK
终止
DELETE /persons/purge/0
200 OK
上传联系人*
GET /persons/uploader
200 OK
{
link: {rel: "self", href="/persons/uploader/0"}}
}
POST /persons/uploader
[ {name: "Jack"}, {name: "Lucy"}, {name: "Lily"} ]
202 Accepted
{
link: {rel: "self", href="/persons/uploader/0"}}
}
GET /persons/uploader
进行中
200 OK
{
link: {rel: "self", href="/persons/uploader/0"},
state: "pending",
percent: "30"
}
成功
303 See Other
Location: "/persons"
{
link: {rel: "self", href="/persons/uploader/0"},
state: "done"
}
失败
200 OK
{
links:
[
{rel: "self", href="/persons/uploader/0"},
{rel: "retry", href="/persons/uploader/0"}
]
state: "failed",
reason: "XXX"
}
重试
PUT /persons/uploader/0
200 OK
终止
DELETE /persons/uploader/0
200 OK
获取联系人信息
GET /person/1
200 OK
{
link: {rel: "self", href: "/person/1"}, id: "1", name: "Jack"//...
}
新建联系人
POST /persons
{ name: "Jack"//... }
201 Created
{
link: {rel: "self", href: "/person/1"}, id: "1", name: "Jack"//...
}
编辑联系人
PUT /person/1
{ name: "Jack"//... }
200 OK
{
link: {rel: "self", href: "/person/1"}, id: "1", name: "Jack"//...
}
删除联系人
DELETE /person/1
200
{
name: "Jack"//...
}
参考
HTTP Method Definitions
转载于:https://www.cnblogs.com/zhengwenwei/p/3570717.html
RESTful Android相关推荐
- android 调用restful,android调用springmvc写的restful
下载srpingmvc的相关jar http://www.cnblogs.com/liuhongfeng/p/4919963.html 配置spingmvc和相关接口 http://blog.csdn ...
- Android使用Bmob移动后端云Restful API需要注意的问题
如果你自己想做一个客户端玩玩,但是又不想去搭建后台服务器,显然Bmob移动后端云是你的最佳选择.官方地址见bmob,文档地址见http://www.bmob.cn/docs.他提供了Android的s ...
- laravel android api,Laravel RESTful API与Android应用程序
我正在使用Laravel 5 Framework开发一个Android应用程序和一个RESTful API. 我在登录活动时遇到了麻烦:流程是用户要求输入第8个字符的代码,并且服务器网络向他发送了一条 ...
- android jersey 上传图片,图片上传--Jersey实现RESTful接口
上次利用SpringMVC实现图片上传,这个是客户端将图片和其他字段一起上传然后一起处理的.(有什么坏处暂时也没有想到)总之这次的希望能够将图片存储的服务独立出来,暂时用Jersey实现一个接口(老大 ...
- Swagger 生成 PHP restful API 接口文档
需求和背景 需求: 为客户端同事写接口文档的各位后端同学,已经在各种场合回忆了使用自动化文档工具前手写文档的血泪史. 我的故事却又不同,因为首先来说,我在公司是 Android 组负责人,属于上述血泪 ...
- 电子界卡组构建2019_2018–2019年构建现代Android应用程序的路线图
电子界卡组构建2019 Kriptofolio应用程序系列-简介 (Kriptofolio app series - Introduction) Welcome to this series of b ...
- Android中的网络(字节跳动)
文章目录 RESTful API 对REST的解释 资源与URI 什么是URI HTTP URL的组成 Http 接口 JSON Http资源 XML JSON Android中对JSON的处理 方法 ...
- [转]构建基于WCF Restful Service的服务
本文转自:http://www.cnblogs.com/scy251147/p/3566638.html 前言 传统的Asmx服务,由于遵循SOAP协议,所以返回内容以xml方式组织.并且客户端需要添 ...
- 某小公司RESTful、共用接口、前后端分离、接口约定的实践
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:邵磊 juejin.im/post/59eafab36fb9 ...
最新文章
- ImageNet十年,AI数据标注如何蓬勃发展?
- 网络爬虫 --DOM处理XML
- 全球第三的晶圆代工厂 也要被卖了?
- 【完结】如何掌握基于图像和视频的人脸表情识别,这9篇文章可以作为一个参考...
- 23种设计模式C++源码与UML实现--组合模式
- Spring MVC 中的基于注解的 Controller
- 首届Hadoop技术社区中国meetup来袭!对外报名正式启动!
- 「镁客·请讲」安智汽车郭健:ADAS是一个链条式的系统,每个模块都必须做好...
- Spring4.0学习笔记(3) —— Spring_Bean之间的关系
- python删除txt指定内容_python删除文件中指定内容
- v4l2视频采集摄像头
- (1)FPGA面试题Setup和Holdup时间
- 苹果推出App Store搜索建议功能
- 幕布(思维导图)官方版 v1.1.15
- 6 DHCPV6原理
- 华为交换机开启web管理
- mysql中工作表工作簿的查询_如何使用SQL语句实现对Excel工作表数据的查询?
- Keep it simple stupid
- 小米电脑如何把计算机放桌面上,小米电脑怎么把此电脑放到桌面上
- 关于软件工程中的银弹
热门文章
- vue代理配置(vue+django前后端分离项目)
- matlab 人群仿真,用simulink如何实现人群搜索算法的pid参数整定
- wsl ubuntu拒绝访问_一起聊聊WSL的那些事儿(下)
- 织梦 m list.php tid,在织梦标签dede:list中增加noflag属性的方法支持5.7版本
- 普通高中计算机课程软件,普通高中信息技术课程标准(2017 年版)(4):选修课程...
- 可变车道怎么走不违章_可变车道怎么才能正确通行?老司机来告诉你什么才是正确的走法。...
- 图像处理 区域删除_FotoWorks XL( 图像处理软件 )中文版分享
- redis 的一主二从三哨兵模式
- OCIEnvCreate failed with return code -1 but error message text was not available with ODP.net
- 「镁客·请讲」NOLO VR张道宁:空间定位技术加持下的VR,是可以搞出商业价值的...