【问题标题】:REST stateless with database带数据库的 REST 无状态
【发布时间】:2014-07-21 05:12:07
【问题描述】:

一点背景故事

我必须为大学开发一个网络应用程序。此网络应用程序与使用谷歌地图管理不同的位置有关,例如固定新位置添加自定义描述等。登录部分是使用 facebook 完成的(使用 facebook 登录)。更有趣的部分是查询(客户端-服务器)必须使用 REST 完成。

我试图理解的部分

如果我使用数据库来存储我的用户的唯一 ID、他们的在线状态(在线/离线)以及以某种方式(实际上并没有解决这个想法)在服务器上保留一个 JSON,其中包含每个用户的固定位置,对于 REST 范式,这一切实际上都可以吗?

我在互联网上找到了不同的答案,我不知道如何正确看待应用程序的无状态性。不会创建会话,但用户相互通信需要来自数据库的凭据。

问题的另一面

考虑到我弄错了,我不应该使用数据库来存储这样的凭据和位置,我应该如何保留所有这些数据?我正在考虑类似 JSON 缓存客户端之类的东西,但是如果我的客户端更改计算机怎么办,这是否意味着他会丢失所有数据? (这也不会让 MVC 因没有模型而受到阻碍吗?)我如何真正跟踪所有事情。

【问题讨论】:

    标签: rest web-applications stateless


    【解决方案1】:

    您这样做对自己太苛刻了,尽量保持简单,因为您可能有最后期限。 REST 是一种使用带有 HTTP 动词(如 GET、POST、PUT 和 DELETE)的 API 的方式。它没有说明如何在 API 后面存储数据。

    至于存储数据,数据库应该没问题。将它作为 JSON 存储在数据库中是可行的,但最终你必须在每次想要使用它时解析 json,所以我建议你将它存储在数据库中,以便它可以是轻松阅读。

    对于初学者(特别是如果您正在为学校项目执行此操作),我绝对建议您设置一个关系数据库,如 Microsoft SQL 数据库(Microsoft Stack)或 MySQL/PosGres 数据库(我认为这个是他们在 linux 中使用的),但是如果你想跳过关系数据库方法(因为它可能不是那么“容易”开始),你总是可以尝试像 MongoDB 这样的 NoSQL 数据库。

    相关链接帮助:
    http://rest.elkstein.org/(REST 解释)
    http://www.restapitutorial.com/lessons/httpmethods.html(REST 动词)
    http://en.wikipedia.org/wiki/Relational_database(什么是关系数据库)
    http://en.wikipedia.org/wiki/Database_normalization(有点像关系数据库的目标.. 但请注意,您可能走得太远了...http://lemire.me/blog/archives/2010/12/02/over-normalization-is-bad-for-you/)
    http://www.mongodb.com/nosql-explained(NoSQL 解释)

    【讨论】:

    • 非常感谢!我确实使用 MySQL 数据库(我使用 XAMPP)。而我之所以这样做,唯一的原因是因为我们老师的压力很大,她的期望值很高。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-07
    • 1970-01-01
    • 2014-12-29
    • 2011-11-12
    • 2015-09-18
    • 1970-01-01
    • 2011-06-10
    相关资源
    最近更新 更多