加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 自动为现有数据库生成API

发布时间:2020-12-17 02:23:08 所属栏目:百科 来源:网络整理
导读:有没有办法为现有数据库自动生成Rails API?我有来自php项目的 mysql DB,我需要为它生成REST API. 解决方法 使用rails 4,您可以使用scaffold,注意保持数据模型与旧数据库完全相同(即相同的表和列名称),然后删除使用scaffold生成的迁移. 假设您有一个名为Post
有没有办法为现有数据库自动生成Rails API?我有来自php项目的 mysql DB,我需要为它生成REST API.

解决方法

使用rails 4,您可以使用scaffold,注意保持数据模型与旧数据库完全相同(即相同的表和列名称),然后删除使用scaffold生成的迁移.

假设您有一个名为Posts的表,其中包含列:subject和body.

你可以运行:

rails g scaffold post subject:string body:text

然后从db / migrate中删除迁移.

现在假设您设置rails应用程序以通过config / database.yml正确访问数据库,您应该已经设置并准备使用json API,因为rails scaffold生成index.json.jbuilder和show.json.jbuilder for你支持的每个资??源.

您可能必须编辑应用程序控制器以允许外部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

对此:

protect_from_forgery with: :null_session

GET请求应该无需修改应用程序控制器即可.

忘了提一下,要访问这些资源,你会使用?format = json作为参数,所以:

http://localhost:3000/posts?format=json

要么

http://localhost:3000/posts/1?format=json

将返回所有帖子或单个帖子的json响应.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读