我有一个导轨API,并且加载一些用户信息的端点是:
# at user controller
def load_user_info
user = User.find_by(id: params[:id])
if user.blank?
# Here I call an external service to crawl user info from
# some webpage, and after get this info I save it in my database
else
user
end
end
在这种情况下,我的load_user_info路线应该应该是get或post?
我已经看过这两个问题,但是对我来说还不够清楚,因为我只在不存在的情况将在我的数据库中保存一些东西,这将是我的外部爬网类,此crawler类将从网站上获取信息,而不是User.create(attributes)
,因此,在我的前端页面(将使用此API)此端点只是负责返回用户信息,我的客户端不知道我的数据库中的任何插入
您什么时候使用帖子,什么时候使用?
我什么时候应该使用get或post方法?它们有什么区别?
基于我仍然有限的知识,我会更改您这样做的方式。
好:将方法更改为user_info
并使其成为一个。您第一次称呼它是副作用的事实,这是无关的。
更好:将方法更改为show
(标准导轨方法之一)并使用GET。
也许最好:将爬网逻辑移至模型或单独的服务。通常,控制器方法不会是这样做的最佳场所,但是您比我更了解您的应用程序。
它将是发布方法,因为您在数组中获取外部源数据,然后将其提取并将其保存到数据库中。无需使用获取方法。
您要保存到数据库中,因此对我而言,这是一篇文章。