我已经阅读了很多关于Rails API优秀设计的文章。但是,我似乎无法找到我想要做的事情。而且它不同,我不知道该怎么做。
所以这个Rails站点有表格,可以为我的各种表生成各种记录。一切正常。没问题。这是所有管理员级别的东西。
但是,其中一些表单需要也作为API提供。现在我的API工作正常,但设计很差(我认为)。目前,用户将发出API请求以执行某些操作并传递一些信息(即将记录添加到Foo
)。
我在API中的方法special_new_foo
,或多或少与表单将路由到的create
内的foo controller
重复。有没有办法可以重用我的标准创建方法?然后API只检查好的数据等,并将信息传递给控制器......
我正在考虑向机器上的本地服务器发出HTTP请求(这基本上是表单的工作方式,除了它们是两个独立的机器)。这是好习惯吗?
谢谢!
答案 0 :(得分:1)
一种选择是允许控制器根据请求以不同的格式进行响应。我认为这是rails在脚手架上产生的。但是我几乎没有看到任何真实世界的应用程序这样做。另请参阅我对Is it necessary to build a separate API endpoint for mobile apps to access a Rails web app?
的回答更好的解决方案是创建一个额外的ServiceObject或FormObject来处理控制器的业务逻辑,并在两个端点中重用此对象 见http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/