0

我正在启动 Web 项目,该项目应该非常灵活和模块化,并且将来肯定会增长很多。当我们计划向其他开发人员提供 api 时,我开始认为将所有方法实现为 api 并提供远程和内部使用它们的功能可能是一个好主意。

例如,假设我们要提取所有注册用户。所以我们在 api 中设计方法,比如 get_all_users,它可以通过 REST 或内部调用获得。问题是我无法弄清楚如何区分访问与内部使用和远程使用,因为我还应该考虑内部调用的速度、代码重用和检查用户权限(用于 api 访问的密钥等)。最佳实践是什么?如何组织这样的 API?

4

2 回答 2

2

所以要构建 API、TastypiePiston。这些让你可以编写“资源”(基本上是视图的 API 版本)——而不是返回 httpresponses,你只需返回将活塞/tastypie 转换为 json 或 xml 或 yaml 或任何你最喜欢的数据语言的对象。

保护访问:考虑使用 @login_required 或 @staff_member_required 装饰器适当地装饰任何包含机密信息的资源。

您甚至可能想更进一步,编写一个装饰器来检查员工用户是否使用 https(而您可能允许普通用户使用任何连接类型)。

于 2012-08-10T13:39:58.843 回答
0

如果你还没有考虑过,我推荐使用Tastypie来设置一个 django 的 API。为了区分您的内部和远程使用,也许您可​​以简单地设计一个不同的 URL 方案。

于 2012-08-10T08:33:34.163 回答