我们有内部构建的Web应用程序(服务器端公开从客户端JS调用的Web服务)。 我们还需要在REST API中公开我们的代码功能。
我想知道 - 我是否也应该开始将REST API用于我内部构建的Web应用程序?
最初,REST架构风格声明REST是无状态的(http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_3)。这导致消费者\客户端将状态保持在客户端。 它适用于“富”客户端(移动应用程序等),这些客户端是为了保存状态而构建的。但是......对于Web应用程序来说它是一样的吗? 让服务器端在REST API中公开自己并且客户端直接调用这些REST API是不是很好?
我看到一些专业人士和一些缺点。
优点:
缺点:
任何提示\建议?
答案 0 :(得分:0)
这是一种极其常见且功能强大的架构,尤其是与AngularJS或EmberJS等重型前端客户端配合使用时。在这种情况下,状态保存在客户端上,并且只传递完成他们正在进行的任何交互(API调用)所需的内容。根据我的经验,它非常干净和可扩展。
你需要弄清楚/处理的几件事。登录& “会话”信息。通常,会话内容无法在REST服务上完成,因此您必须以各种方式对此进行说明。登录通常通过从服务器获取令牌(例如,JavaScript Web令牌)然后在进一步的请求上传递令牌来完成。您最终会自行处理到期日期。
答案 1 :(得分:0)
对所有应用程序使用单个REST服务器将使您能够重用服务器。 关于会话,在Kaltura中,我们使用login返回一个加密字符串,该字符串包含用户ID,会话类型(admin / user)和会话到期,一旦客户端收到该会话字符串,它将用于任何将来的API调用。 这种架构使我们能够在该会话字符串上保存其他信息,而无需在服务器上保留它的副本。
有关更多API REST服务器指南,请参阅我的博客:http://restafar.com/create-new-rest-server/