“Xproject api设计”的版本间的差异

来自Dennis的知识库
跳转到: 导航搜索
规范
第2行: 第2行:
  
 
* 协议格式:使用json序列化
 
* 协议格式:使用json序列化
 +
* 请求:get请求遵循RESTFul风格,post请求发送json对象。
 +
* 应答:统一为:
 +
    { code : 状态码 , result: 应答对象(根据API不同,结果不同) ,  error:错误信息(可选)}
 +
*应答状态码:
 +
** 0 成功
 +
** 1 没有授权
 +
** 2 服务异常,需重试,一般是服务器内异常引起。
 +
** 3 失败, 逻辑上的操作失败,比如登录失败,具体错误信息见error
 +
** 其他待定
 
* 基础对象:
 
* 基础对象:
 
** User
 
** User
 +
*** user_id
 
*** display_name
 
*** display_name
 
*** username
 
*** username
第11行: 第21行:
 
*** profile_picture 照片
 
*** profile_picture 照片
 
** Media
 
** Media
 +
*** media_id
 
*** path 下载路径
 
*** path 下载路径
 
*** description 描述文字
 
*** description 描述文字
第17行: 第28行:
 
*** created 创建时间
 
*** created 创建时间
  
 +
== 用户管理 ==
  
 +
* GET /users/{user-id}      获取用户信息,返回User对象
 +
* GET /users/{user-id}/media/recent  获取用户关注的用户最近的media list(发布时间排序),可以不断下拉,接收start,limit参数分页。
 +
* GET /users/self/media/liked  获取自己liked的media list
 +
* GET /users/self/medias  获取自己发布的media列表,同样分页
 +
* GET /users/search        查询用户,接受username参数做模糊查询,返回User list。
  
 +
== 用户关系 ==
  
 +
* GET /users/{user-id}/followings  获取该用户关注中的用户列表 user list,可分页
 +
* GET /users/{user-id}/followed-by  获取该用户被谁关注的用户列表,可分页
 +
* GET /users/{user-id}/relationship  同时获取关注中和被关注的用户列表,应答对象为{ followings : 关注中的对象列表 , followers : 关注该用户的对象列表 }
 +
* POST /users/{user-id}/relationship  关注某些用户,请求为
 +
    { follow : target_user_id_list }
  
== Users ==
+
== Media管理 ==
GETusers/{user-id}
+
GETusers/self/feed
+
GETusers/{user-id}/media/recent
+
GETusers/self/media/liked
+
GETusers/search
+
Relationships
+
GETusers/{user-id}/follows
+
GETusers/{user-id}/followed-by
+
GETusers/self/requested-by
+
GETusers/{user-id}/relationship (GET)
+
POSTusers/{user-id}/relationship (POST)
+
Media
+
GETmedia/{id}
+
GETmedia/search
+
GETmedia/popular
+
Comments
+
GETmedia/{media-id}/comments (GET)
+
POSTmedia/{media-id}/comments (POST)
+
DELETEmedia/{media-id}/comments/{comment-id}
+
Likes
+
GETmedia/{media-id}/likes (GET)
+
POSTmedia/{media-id}/likes (POST)
+
DELETEmedia/{media-id}/likes (DELETE)
+
Tags
+
GETtags/{tag-name}
+
GETtags/{tag-name}/media/recent
+
GETtags/search
+
Locations
+
GETlocations/{location-id}
+
GETlocations/{location-id}/media/recent
+
GETlocations/search
+
Subscriptions
+
POSTsubscriptions (POST) [User]
+
POSTsubscriptions (POST) [Tag]
+
POSTsubscriptions (POST) [Location]
+
POSTsubscriptions (POST) [Geography]
+
GETsubscriptions (GET)
+
DELETEsubscriptions (DELETE)
+
Authentication
+
No AuthFeedback ◀
+
Request URL
+
Send
+
  
+
* GET /medias/{id}    获取某个media_id的media对象
Query
+
* GET /medias/search  查询media,根据description和owner来查询
Template
+
* GET /medias/popular  获取最热media列表,可设置limit
Headers
+
* POST /medias    上传media,owner为当前session的user,上传采用http post,类似上传文件。返回结果为media对象。
 +
* DELETE /media/{id} 删除某个media,服务端会检查该media是否为当前session的user所有。
  
== 用户管理 ==  
+
== 评论 ==
* GET /users/{user-id}       获取用户信息,返回User
+
* GET /media/{media-id}/comments  获取某个media的评论列表
* GET /users/self/feed    获取自己的feed
+
* POST /media/{media-id}/comments 为某个media评论,评论者为当前session的user,post内容为comment对象
* GET /users/{user-id}/media/recent  获取自己最近的media
+
* DELETE /media/{media-id}/comments/{comment-id} 删除某个media的评论,评论者为当前session的user
* GET /users/self/media/liked  获取自己liked的media列表
+
* GET /users/search        查询用户
+
 
+
== 用户关系 ==
+
  
GETusers/{user-id}/follows
+
== 喜欢 ==
GETusers/{user-id}/followed-by
+
* GET /media/{media-id}/likes  获取某个media的喜欢的用户列表 user list
GETusers/self/requested-by
+
* POST /media/{media-id}/likes 喜欢某个media
GETusers/{user-id}/relationship (GET)
+
* DELETE /media/{media-id}/likes 取消喜欢某个media
POSTusers/{user-id}/relationship (POST)
+
Media
+
GETmedia/{id}
+
GETmedia/search
+
GETmedia/popular
+
Comments
+
GETmedia/{media-id}/comments (GET)
+
POSTmedia/{media-id}/comments (POST)
+
DELETEmedia/{media-id}/comments/{comment-id}
+
Likes
+
GETmedia/{media-id}/likes (GET)
+
POSTmedia/{media-id}/likes (POST)
+
DELETEmedia/{media-id}/likes (DELETE)
+
Tags
+
GETtags/{tag-name}
+
GETtags/{tag-name}/media/recent
+
GETtags/search
+
Locations
+
GETlocations/{location-id}
+
GETlocations/{location-id}/media/recent
+
GETlocations/search
+
Subscriptions
+
POSTsubscriptions (POST) [User]
+
POSTsubscriptions (POST) [Tag]
+
POSTsubscriptions (POST) [Location]
+
POSTsubscriptions (POST) [Geography]
+
GETsubscriptions (GET)
+
DELETEsubscriptions (DELETE)
+

2012年12月8日 (六) 16:18的版本

目录

规范

  • 协议格式:使用json序列化
  • 请求:get请求遵循RESTFul风格,post请求发送json对象。
  • 应答:统一为:
   { code : 状态码 , result: 应答对象(根据API不同,结果不同) ,  error:错误信息(可选)}
  • 应答状态码:
    • 0 成功
    • 1 没有授权
    • 2 服务异常,需重试,一般是服务器内异常引起。
    • 3 失败, 逻辑上的操作失败,比如登录失败,具体错误信息见error
    • 其他待定
  • 基础对象:
    • User
      • user_id
      • display_name
      • username
      • medias 音频数
      • followers 关注者数目
      • followings 关注中的用户数
      • profile_picture 照片
    • Media
      • media_id
      • path 下载路径
      • description 描述文字
      • checksum 校验和
      • owner 拥有者
      • created 创建时间

用户管理

  • GET /users/{user-id} 获取用户信息,返回User对象
  • GET /users/{user-id}/media/recent 获取用户关注的用户最近的media list(发布时间排序),可以不断下拉,接收start,limit参数分页。
  • GET /users/self/media/liked 获取自己liked的media list
  • GET /users/self/medias 获取自己发布的media列表,同样分页
  • GET /users/search 查询用户,接受username参数做模糊查询,返回User list。

用户关系

  • GET /users/{user-id}/followings 获取该用户关注中的用户列表 user list,可分页
  • GET /users/{user-id}/followed-by 获取该用户被谁关注的用户列表,可分页
  • GET /users/{user-id}/relationship 同时获取关注中和被关注的用户列表,应答对象为{ followings : 关注中的对象列表 , followers : 关注该用户的对象列表 }
  • POST /users/{user-id}/relationship 关注某些用户,请求为
   { follow : target_user_id_list }

Media管理

  • GET /medias/{id} 获取某个media_id的media对象
  • GET /medias/search 查询media,根据description和owner来查询
  • GET /medias/popular 获取最热media列表,可设置limit
  • POST /medias 上传media,owner为当前session的user,上传采用http post,类似上传文件。返回结果为media对象。
  • DELETE /media/{id} 删除某个media,服务端会检查该media是否为当前session的user所有。

评论

  • GET /media/{media-id}/comments 获取某个media的评论列表
  • POST /media/{media-id}/comments 为某个media评论,评论者为当前session的user,post内容为comment对象
  • DELETE /media/{media-id}/comments/{comment-id} 删除某个media的评论,评论者为当前session的user

喜欢

  • GET /media/{media-id}/likes 获取某个media的喜欢的用户列表 user list
  • POST /media/{media-id}/likes 喜欢某个media
  • DELETE /media/{media-id}/likes 取消喜欢某个media
个人工具
名字空间

变换
操作
导航
工具箱