在 Rails 中编写 API 应用程序的最佳方法
Best Method to write an API application in Rails
我计划使用 Rails4.2 启动纯 API 应用程序。由于它是一个 API 应用程序,外部客户端向该应用程序发出请求,因此该应用程序不涉及任何视图。我想知道构建应用程序的最佳方法是什么。我应该使用像 jbuilder
/rabl
这样的 gem 还是应该使用像 Grape
这样的 gem?哪个效率更高?
如果您打算使用 Rails,我建议您不要使用 Grape。这是我这么认为的原因:
- 您大概已经知道一些关于如何构建的事情 Rails
应用程序。所有这些知识都可以应用于构建 API。
Grape 不是以 Rails 为基础构建的,最终复制了一个
Rails 正在做的很多事情,有时会有一些细微的差异,这只会导致混淆。
- Grape 中的一些东西,例如异常处理和日志记录与
Rails 应用程序。如果你愿意,这可能会让你在路上有些头疼
使用像 New Relic 这样的东西。
- 版本控制导致大量重复。你会过得更好
使用非侵入式 gem 处理此问题,例如 api-versions.
rocket_pants, but from my experience, if you want to use Rails, and unless you have a strong rationale to do otherwise, I would recommend keeping it simple and just sticking with jbuilder or active_model_serializers中可能有一个选项。
我计划使用 Rails4.2 启动纯 API 应用程序。由于它是一个 API 应用程序,外部客户端向该应用程序发出请求,因此该应用程序不涉及任何视图。我想知道构建应用程序的最佳方法是什么。我应该使用像 jbuilder
/rabl
这样的 gem 还是应该使用像 Grape
这样的 gem?哪个效率更高?
如果您打算使用 Rails,我建议您不要使用 Grape。这是我这么认为的原因:
- 您大概已经知道一些关于如何构建的事情 Rails 应用程序。所有这些知识都可以应用于构建 API。 Grape 不是以 Rails 为基础构建的,最终复制了一个 Rails 正在做的很多事情,有时会有一些细微的差异,这只会导致混淆。
- Grape 中的一些东西,例如异常处理和日志记录与 Rails 应用程序。如果你愿意,这可能会让你在路上有些头疼 使用像 New Relic 这样的东西。
- 版本控制导致大量重复。你会过得更好 使用非侵入式 gem 处理此问题,例如 api-versions.
rocket_pants, but from my experience, if you want to use Rails, and unless you have a strong rationale to do otherwise, I would recommend keeping it simple and just sticking with jbuilder or active_model_serializers中可能有一个选项。