gpt4 book ai didi

ruby-on-rails - Rails API 设计

转载 作者:行者123 更新时间:2023-12-04 01:42:49 24 4
gpt4 key购买 nike

我有一个主要基于 REST 的 Rails 站点,我想添加 JSON API 支持。

对于干净的代码库,我应该在现有 Controller 中添加此支持还是创建仅处理此 API 方法的新 Controller ,然后将所有通用代码移至模型/帮助程序?

最佳答案

我使用了这两种技术:在同一个 Controller 中编写 API 逻辑并为 API 请求制作单独的 Controller 。

如果它只是一个 API,一个仅供您使用的小应用程序,请使用 rails 提供的默认 Controller 模型关系。代码会很干净。您的路线文件也将是干净的。

如果您有一个网站并且您想构建一个 API,请单独进行。我已经在现有 Controller 旁边构建了一个,代码太乱了。代码我重构了好几次,但还是不喜欢(这也是个人口味的问题)。

另一种解决方案是制作带有前缀的 Controller 。例如:ApiUsersController .这将使您的 routes.rb文件看起来很难看,因为您必须手动指定路由以匹配相应的 Controller 方法。

对我来说,可行的解决方案是将所有 API 逻辑移动到 API 命名空间下的单独 Controller 中。命名空间还允许您进行 API 版本控制。因此,例如,您的路线将是:

GET /api/v1/users.json
POST /api/v1/users.json

然后,将来您可以创建另一个 API 版本,比如说 v2 ,而不会破坏使用旧版本 API 的现有应用程序。

您可以在此处找到有关命名空间的更多信息: http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

关于带有版本控制的 REST-full API 的精彩教程: http://railscasts.com/episodes/350-rest-api-versioning?view=asciicast

关于ruby-on-rails - Rails API 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13815561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com