您的位置:首页 > 大数据 > 人工智能

Rails 开发环境 API 调用

2018-03-01 18:52 302 查看

参考资料:

使用 Rails 构建 API 实践

gem ‘rest-client’ 官方文档

五倍红宝石.Rails 入門.API 模式

RestClient Gem简介

测试

终端常用指令

#启动 rails s,同时开发 API 接口
rails s -b 0.0.0.0

#查询本机网络端口设置,获取 API 端口信息
ifconfig


在终端打印 api 信息

Controller

def new
binding.pry
@letter = Letter.new
@letter_text = LetterText.new
users = RestClient.get 'http://192.168.1.251:3000/api/v1/users/1.json'
puts users
k = JSON.parse(users)
pp k
pp k["user"]["id"]
puts k["user"]["id"]
end




API 端口设置

参考该教程:使用 Rails 构建 API 实践

API 传输格式——json

使用 API 教程

使用 API 数据与 RMVC 架构不同之处,省去数据库与 Model 即 RVC。例如,Rails01 项目的 User 数据通过 API 调用 Rails02 项目的 User 数据使用。不仅可以获得 User 的数据,还可以通过 Modle 关系获得关联的部门与权限信息。

简单讲解

config/routes.rb

Rails.application.routes.draw do
root 'notices#index'
resources :users
end


app/controllers/users_controller.rb

class UsersController < ApplicationController
require 'rest-client'
require 'json'
require 'pp'
require 'rubygems'

def index
# 以下 API 调用只是 get,后面 params部分是 head 信息
users = RestClient.get 'http://192.168.1.251:3000/api/v1/users'
# 解析为 JSON 格式
@users = JSON.parse(users)["user"]
end

def show
# gem 'rest-client' 没有提供更改 API 路径最后 id 的方法,通过变量赋值与插值解决
user_id = params[:id].to_i
user = RestClient.get("http://192.168.1.251:3000/api/v1/users/#{user_id}")
@user = JSON.parse(user)["user"]
end
end


rails c 页面测试

从截图看出
@user = JSON.parse(user)
获得的是一组哈希数组,通过哈希取值方式取出需要的信息。

数组取值:值 = array[key] 即
@user = JSON.parse(user)["user"]


Controller 与 View 都是同样的取值方式



app/views/users/index.html.erb**

<h1>员工列表</h1>

<table class="table table-bordered table-hover">
<tr class="text-info">
<th>编号</th>
<th>姓名</th>
<th>部门</th>
</tr>
<% @users.each do |f| %>
<tr>
<td><%= f["coding"] %></td>
<td><%= link_to "#{f["name"]}", user_path(f["id"]) %></td>
<td><%= f["department"]["name"] %></td>
</tr>
<% end %>
</table>


app/views/users/show.html.erb**

<div class="col-md-4 col-md-offset-4 text-center">
<h1>员工信息</h1>

<hr>

<h3><%= @user["name"] %></h1>
<p>
编号: <%= @user["coding"] %>
</p>

<p>
部门: <%= @user["department"]["name"] %>
</p>

<p>
角色: <%= @user["role"] %>
</p>

<p>
权限: <%= @user["permissions"][0]["name"] %>
</p>
</div>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: