构建一个简单的RESTful api

gio*_*gio 15 php authentication api rest

我想按照REST原则快速制作API - 对于我构建的简单Web应用程序.API将首先用于与iPhone应用程序连接.API只需要处理几个基本调用,但都需要身份验证,没有什么是公共数据.

  • 登录/验证用户
  • 获取用户组中的记录列表
  • 再次获取列表,只有那些已更改(新添加或更新)的列表
  • 更新记录

那么,遵循REST原则,我会设置uri方案吗?:

  • mysite.com/api/auth(POST?)
  • mysite.com/api/users(GET)
  • mysite.com/api/update(POST?)

并且响应将以XML开头,JSON以后也是如此.

  1. 在网站上,用户使用电子邮件和密码登录.我是否应该让他们在个人资料页面上获得"令牌"以传递每个api请求?(会使独立的'/ auth'URI资源变得多余).

  2. 构建响应xml的最佳实践?看起来像REST,你应该返回200 ok和XML或实际正确的状态代码,即401等

任何一般指针都赞赏.

jay*_*hao 4

1-对于身份验证,您可能需要考虑 http-basic 或摘要身份验证(注意 - 如果不通过 h​​ttps,特别是基本身份验证是不安全的)

对于 url 方案:

  • 如果您利用 basic 或 摘要,则不需要 /api/auth。
  • /api/group/groupname/ 可能更规范
  • /api/update 通常会作为 /api/users/username (POST) 完成,并添加新数据 - 资源是用户 - POST 是动词
  • 否则,基本上你的 API 看起来很正常,很大程度上取决于组是否是分层的,并且用户必须生活在一个组中 - 如果是这样,你的 url 应该反映这一点并且可以导航。

2-状态代码应反映状态 - 200 表示正常,401 表示访问被拒绝,404 表示未找到,500 表示错误处理。一般来说,如果您有好的请求,您应该只返回 XML 记录