使用 Rails 构建 RESTful API
在构建 API 时,Rails 是一种非常流行的编程语言选择,可用于构建强大的 RESTful API。在本教程中,我们将使用 Rails 构建一个简单的 REST API。Rails REST API 端点将允许用户检索信用评分。当然,我们不会链接到任何后端系统来获取信用评分,而是使用随机数生成器来生成分数并将其返回给用户。虽然很简单,但本教程将向您展示使用 Rails 进行 REST API 开发的基础知识。
先决条件
在开始之前,我们必须确保满足几个先决条件。要继续并运行本教程,您需要:
- 安装 Ruby
- 安装 Rails –
sudo gem install rails
- 有一个可用的 IDE 来编辑你的代码
- 安装 Postman,以便可以测试端点
完成所有这 4 个先决条件后,我们就可以开始了!
添加代码
创建代码的第一步是生成 Rails API 项目。为此,我们将运行以下命令来创建一个新的 Rails API 应用程序。
rails new my_api --api
可选地,我们还将设置 CORS 配置以允许来自所有来源的流量,以便于测试。在根目录中的Gemfilerack-cors
中,取消注释该条目。它应该看起来像这样。
gem "rack-cors"
取消注释后,我们需要安装依赖项。然后,在终端中运行以下命令来安装依赖项。
bundle install
在项目的根文件夹中,在config/initializers
目录中,打开cors.rb文件。在cors.rb文件中,取消注释 CORS 配置,并将origins
条目更改为“*”
。这将允许所有来源,本质上允许所有流量流入服务。对于产品应用程序,您可能希望锁定并进一步拨入 CORS 配置。
该文件现在应如下所示:
Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins "*"
resource "*",
headers: :any,
methods: [:get, :post, :put, :patch, :delete, :options, :head]
end
end
接下来,我们将为 创建GET
端点api/getcreditscore
。我们的第一步是创建端点的路由。为此,请打开config
目录中的 routes.rb 文件。
Rails.application.routes.draw do
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
# Defines the root path route ("/")
# root "articles#index"
get 'api/getcreditscore', to: 'application#creditscore'
end
现在路由已定义,我们将为端点创建控制器函数。该函数将返回一个 JSON 有效负载,其中包含 500 到 900 之间的随机数,代表信用评分。要添加此逻辑,请导航到目录中的application_controller.rbcontrollers
。完成的控制器文件将如下例所示。
class ApplicationController < ActionController::API
def creditscore
render json: { creditscore: rand(500..900) }
end
end
这样,我们的 API 就可以部署了。
运行并测试代码
在本例中,我们将在本地运行 Rails 应用程序。要本地运行 API,我们需要启动 Rails 服务器。我们可以在rails server
应用程序的根目录中使用命令来执行此操作。
rails server
现在,我们的 Rails 应用程序和 API 已启动并运行。您可以通过 Postman 发送测试 HTTP 请求。通过向 发送请求localhost:3000/api/getcreditscore
,您应该会看到从application_controller.rb文件中编写的处理程序200 OK
返回的状态代码和信用评分。对于此测试,传入请求不需要请求正文。creditscore
默认情况下,rails 将在端口 3000 上运行。要更改这种情况,您可以打开目录中的puma.rb
config
文件并更改以下代码行以修补您希望服务器监听的端口。
port ENV.fetch("PORT") { 3000 }
总结
这样,我们就使用 Rails 创建了一个简单的 RESTful API。然后可以根据需要扩展此代码,以构建应用程序的 API。接下来,您可能希望使用 API 密钥保护 API,将 API 与 API 网关集成,查看 API 的使用情况,或通过API 货币化创造收入。要获得满足 API 分析和货币化需求的解决方案,请立即查看 Moesif以探索所有这些内容以及更多内容!
原文地址:https://www.moesif.com/blog/technical/api-development/Building-A-RESTful-API-With-Rails/