有没有办法为现有数据库自动生成Rails API?我有来自 php 项目的 mysql DB,我需要为它生成 REST API。
使用rails 4,您可以使用脚手架,注意保持数据模型与旧数据库完全相同(即相同的表和列名称),然后删除使用脚手架生成的迁移。
假设您有一个名为 Posts 的表,其中包含以下列:主题和正文。
你可以运行:
rails g scaffold post subject:string body:text
Run Code Online (Sandbox Code Playgroud)
然后从 db/migrate 中删除迁移。
现在假设您设置了 Rails 应用程序以通过 config/database.yml 正确访问数据库,您应该有一个 json API 已全部设置完毕并可供使用,因为 Railsscaffold 会生成 index.json.jbuilder 和 show.json.jbuilder您搭建的每一个资源。
您可能必须编辑应用程序控制器以允许外部 API 请求,但这仅在您计划 POST 到 API 时才重要:
如果您确实需要 POST,请更改 app/controllers/application_controller.rb 顶部的这一行:
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
Run Code Online (Sandbox Code Playgroud)
对此:
protect_from_forgery with: :null_session
Run Code Online (Sandbox Code Playgroud)
GET 请求应该可以在不修改应用程序控制器的情况下工作。
忘记提及,要访问这些资源,您将使用 ?format=json 作为参数,因此:
http://localhost:3000/posts?format=json
Run Code Online (Sandbox Code Playgroud)
或者
http://localhost:3000/posts/1?format=json
Run Code Online (Sandbox Code Playgroud)
将返回所有帖子或单个帖子的 json 响应。
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |