首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将ruby api转换为rest api web应用程序

将ruby api转换为rest api web应用程序
EN

Stack Overflow用户
提问于 2013-04-02 08:06:43
回答 1查看 156关注 0票数 0

我有一个ruby应用程序,它基本上是一个API服务器-可以调用服务器的IP地址和端口-来访问这个应用程序。

现在,我希望将其转换为一个常规的ruby web应用程序-它具有身份验证功能,并遵循REST结构。

执行此操作的最简单的/quickest方法是什么?

我还希望核心Ruby代码(实际上支持API)与REST绑定/身份验证模型分开--这样核心代码就可以单独更新。

EN

回答 1

Stack Overflow用户

发布于 2013-04-02 09:06:55

就我个人而言,我建议使用Rails和Rabl。如果你关心你的应用程序接口的版本控制(提示:你会的),那么Version Cake gem也是绝对必须的。人们通常不喜欢第三方API从他们的脚下改变。

对于身份验证,我建议使用用户id和令牌的组合,或者作为头部(即X-YOURAPP-TOKEN = ryan-a003c850e1)传递,或者作为操作的参数传递。然后,通过在-上拆分这个令牌来完成“身份验证”,然后找到用户记录,然后检查该用户的API是否与令牌的其余部分匹配。如果是,则应该对用户进行身份验证。将用户记录存储在@current_api_user这样的实例变量中,以便可以在控制器中访问它。

您的控制器是在一个层次结构中设置的,其中您有一个包含此身份验证逻辑(作为before_filter)的BaseController,然后其他控制器继承该逻辑。如果你有任何其他的帮助器,他们也会进入这个控制器。显然,我假设您现在对Rails有所了解。

对于授权,请使用CanCan。它的自述文件和Wiki是关于如何使用它的很好的信息来源。您的API可能需要授权,即使您在最初的帖子中没有说明这一点。

使用与此类似的设置,这就是我如何构建Spree的应用程序接口的方法,您可以在这里看到:https://github.com/spree/spree/tree/master/api

其他人会推荐在Rails上使用Sinatra,在Rails上使用Active Model Serializers。其他人仍然会建议您使用Hypermedia API而不是传统的REST接口。甚至有关于如何做到这一点的a book

老实说,你自己决定使用什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15753950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档