0

我在 Rails 中开发了几个应用程序,我需要开发一个 API。我收到了在 Sinatra 中构建它的建议,所以我开始研究它。

看起来很不错,但是在 Rails 中自动化的很多东西似乎在 Sinatra 中并不存在。具体来说,我似乎必须从头开始编写我的资源。例如。模型本身、迁移和 REST 路由。

我想知道是否有像 Rails 提供的那样的 Sinatra 生成器?或者如果我希望这些事情自动化,我应该简单地使用 Rails 吗?

4

4 回答 4

1

我个人不使用 Sinatra,但我从其他 Rails 开发人员那里得到的很多反馈是,他们最终会切换回 Rails。我确信在 Rails 上使用 Sinatra 有很好的理由,但如果您已经了解 Rails,并且没有速度或应用程序大小限制,我会坚持下去。

Sinatra 的另一个替代方案是Rails API项目,它不包含 Rails 框架的任何与视图相关的部分。我过去使用过它并且喜欢它,但它比仅使用 Rails 更好吗?很难说。

于 2013-02-10T13:28:32.757 回答
1

如果你必须有 Sinatra,你应该去看看Padrino 。

Padrino 是一个基于 Sinatra 网络库的 ruby​​ 框架。Sinatra 是一种 DSL,用于在 Ruby 中创建简单的 Web 应用程序。Padrino 的创建是为了让编写更高级的 Web 应用程序变得有趣和容易,同时仍然坚持使 Sinatra 变得伟大的精神!

或者正如 Beerlington 所提到的,如果您对 Rails 感觉更熟悉,您可以使用Rails API 。我们最近一直在使用它并取得了很好的成功。我们创建了一个带有 mongo 后端的简单 API。启动非常快:)

于 2013-02-10T15:47:23.910 回答
1

查看可用于处理 RESTful 路由的sinatra-restgem 。为方便起见,引用如下:


[sinatra-rest 是] 一组将 RESTful 路由引入 Sinatra 的模板。您唯一要做的就是提供意见。自动适用于基于 ActiveRecord、DataMapper 或 Stone 的模型。

例如,如果您的模型类名为 Person,您只需添加以下行:

rest Person

这会将以下 RESTful 路由添加到您的应用程序。(注意路线的复数形式Person/people/*

Verb    Route            Controller   View
GET     /people          index        /people/index.haml
GET     /people/new      new          /people/new.haml
POST    /people          create       → redirect to show
GET     /people/1        show         /people/show.haml
GET     /people/1/edit   edit         /people/edit.haml
PUT     /people/1        update       → redirect to show
DELETE  /people/1        destroy      → redirect to index
于 2013-02-11T01:27:13.163 回答
0

Or should I simply use Rails if I want these kind of things automated?

If you're that used to Rails that using Ruby is a problem, then maybe. Alternatively, you could try this API generator that uses Sinatra:

https://github.com/mattetti/Weasel-Diesel

于 2013-02-11T01:15:49.563 回答