首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为现有数据库自动生成API

问为现有数据库自动生成API
EN

Stack Overflow用户
提问于 2014-09-15 22:15:38
回答 3查看 1.8K关注 0票数 6

有没有办法为现有的数据库自动生成Rails API?我有来自php项目的mysql DB,我需要为它生成REST API。

EN

回答 3

Stack Overflow用户

发布于 2014-09-15 23:29:49

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

假设您有一个名为Posts的表,其中有两列: subject和body。

你可以运行:

代码语言:javascript
复制
rails g scaffold post subject:string body:text

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

现在假设您将rails应用程序设置为通过config/database.yml正确访问数据库,那么您应该已经设置好了json API,并且可以使用了,因为rails scaffold会为您搭建的每个资源生成index.json.jbuilder和show.json.jbuilder。

您可能必须编辑应用程序控制器以允许外部应用程序接口请求,但只有当您计划通过POSTing访问您的应用程序接口时,这才是重要的:

如果你确实需要发布,那么在你的应用程序的顶部修改这一行/控制器/应用程序_控制器.rb:

代码语言:javascript
复制
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception

要这样做:

代码语言:javascript
复制
protect_from_forgery with: :null_session

GET请求应该在不修改应用程序控制器的情况下工作。

忘了提一下,要访问这些资源,您将使用?format=json作为参数,因此:

代码语言:javascript
复制
http://localhost:3000/posts?format=json

或

代码语言:javascript
复制
http://localhost:3000/posts/1?format=json

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

票数 2
EN

Stack Overflow用户

发布于 2015-04-21 19:26:14

你可以使用AutomaticApiRest automaticapirest.info,这个项目是我去年创建的。基本上,这个工具允许在几秒钟内创建一个API REST数据库(MySQL)。

特性

  1. 创建一个功能强大的应用编程接口将你的MySQL数据库的其余部分放在Seconds.
  2. Management的应用编程接口中,它不需要额外的数据库。
  3. 私有表和字段。
  4. 自定义查询。

安装

  1. 下载源代码或克隆存储库。

git将其克隆到文件中(对于Apache).

  • Open,请使用服务器credencials.

  • Go to domain.com/AutomaticaApiRest

完成/var/www/YourWebPage/ config.php中的所有字段

票数 1
EN

Stack Overflow用户

发布于 2020-06-17 23:53:06

您可以使用任何Node.js数据库(MySQL、MSSQL、SQL Server、Aurora、PostgreSQL和SQLite)。我是该项目的核心提交者之一。

安装CLI工具(使用以下命令从npm全局xc-cli):

代码语言:javascript
复制
npm install -g xc-cli

然后,只需使用以下命令即可创建工程:

代码语言:javascript
复制
xc new <project_name>

注意:它将提示输入数据库连接详细信息,只需输入连接详细信息,它将执行其余的代码生成。您必须安装图形用户界面工具才能进行代码生成(从此处下载:

有关更多信息,请参阅GitHub存储库:https://github.com/xgenecloud/xgenecloud

有关文档,请参阅:http://docs.xgenecloud.com/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25850150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档