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.rbRails.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>
相关文章推荐
- hbase远程api调用, 远程连接开发,环境构建相关问题总结
- ruby on rails + mysql 开发环境搭建
- 即时通讯开发之调用API接口快速在IOS平台的即时通讯应用开发
- Qt开发环境下QML调用已定义的C++类(以导出文件功能为例)
- Ruby on Rails的下载及安装以及开发环境的搭建
- 安装 Ruby 和 Rails 开发环境
- 1 使用InstantRails快速搭建Ruby On Rails开发环境
- 微信支付开发教程JAVA编[008]-wxsdk4java:微信公众号和微信支付开发的所有API功能点的封装及调用实例
- Java调用c++动态链接库(一) JNative 开发环境的搭建
- Android开发:调用camera API 创建MediaRecorder
- ArcGIS API for JavaScript开发环境搭建及第一个实例demo
- 在非VS环境下C++ Builder,Delphi,VC,VB等调用C#开发的DLL的完整方法
- Android开发:如何在Eclipse 中调用Android 源码里的隐藏API
- Mac下搭建ruby on rails 开发环境 Aptana+pgadmin+postgres
- Ubuntu上配置Ruby on Rails框架及RubyMine IDE开发环境
- JAVA常用API或编程工具002---SpringSource Tool Suite:基于Eclipse的Spring应用开发环境
- 不使用VS.NET集成开发环境,调用微软的WebService注册
- ruby on rails 环境搭建以及emacs开发环境配置
- WO+开放平台:API调用开发手记(话费计费接口2.0)
- Ubuntu 11.10下搭建Ruby on Rails开发环境(rvm)