`

grape接口开发

 
阅读更多
第一步按照github上的文件配置https://github.com/intridea/grape
(1)gem 'grape' 然后bundle install
(2)在config.ru里面添加 run Twitter::API
(3)在application.rb里面添加两句话
config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')]
(4)在路由里面添加 mount Twitter::API => '/'
完成以上几个步骤基本上就可以去写代码了,需要注意的是 如果例子当中的module Twitter
class API < Grape::API end end的Twitter是我们自己定义的文件夹,则(2)(4)里面就去掉Twitter就可以了。也就是只有一个api.rb文件。里面为class API < Grape::API end
我做的步骤是
创建一个文件夹api,然后在这个文件夹下分别创建一个项目自己项目名字project的文件夹用来放每一个接口的方法,创建一个公共的api.rb文件也就是例子中的api,在创建一个helpers.rb文件专门用来放一些公共方法。
使用:在api里面主要是一堆mount,把helpers.rb里面的类 以及project下的类mount进来

require 'helpers'
class API < Grape::API
 
  version 'v1', using: :header, vendor: 'project'
  format :json
  prefix :api

  helpers ProjectInterface::APIHelpers
  mount Project::LoginOauth
  mount Project::PhoneRecord
  mount Project::UserInfo
end
这里值得注意的是需要把require 一下helpers 不然 直接helpers ProjectInterface::APIHelpers会报错

helpers.rb的文件结构:
require "uuidtools"

module ProjectInterface
  module APIHelpers
    def warden
      env['warden']
    end
......
end
end

在project文件夹下的user_info.rb文件结构:
module Project
  class UserInfo < Grape::API
     format :json
     helpers ::ProjectInterface::APIHelpers

end
end
这样之后差不多就可以定义自己的路由,请求的方法,参数什么的
desc 'Returns token.'
      params do
        requires :login_name, type: String, desc: "login_name."
        requires :password, type: String, desc: "password."
      end
接口路由
resource :users do
   post :get_token do
     authenticate!//helpers里面的方法
   end
end
然后就是curl 的测试。curl -X POST -H 'Content-Type: application/json' -d '{"login_name": "admin","password": "123456"}'http://localhost:3000/api/users/get_token
上面的curl是一句话。需要注意的是post请求都是以-d方式传参数,get以问号方式传递。然后在每个接口路由前面都会自动加了一个api源于前面的一句prefix :api
以上个人总结,大虾指正
分享到:
评论

相关推荐

    Api-grape-entity.zip

    Api-grape-entity.zip,位于对象模型顶部的以api为中心的外观。,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并将数据放弃到对象中,api简化了...

    Api-grape.zip

    Api-grape.zip,一个固执己见的框架,用于在ruby.table中创建类似rest的api,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并将数据放弃到对象中,...

    grape-middleware-logger:记录Grape应用程序的中间件

    安装将此行添加到您的应用程序的Gemfile中: gem 'grape' , '&gt;= 0.17'gem 'grape-middleware-logger'用法require 'grape'require 'grape/middleware/logger'class API &lt; Grape :: API # @note Make sure this is ...

    grape-swagger-rails, Swagger UI作为葡萄 Swagger gem的Rails 引擎.zip

    grape-swagger-rails, Swagger UI作为葡萄 Swagger gem的Rails 引擎 GrapeSwaggerRails Swagger UI作为葡萄 Swagger gem的Rails 引擎。安装将此行添加到你的应用程序的Gemfile中:gem 'grape-swagger-rails'

    rails-grape-entity:Rails 4 + Grape API + Grape实体+ Swagger

    我打算添加一些示例,但这实际上只是为了说明Grape + Grape-Entity如何协同工作。 新增功能和改进功能:请查看“项目! 非常好。 试一下! 环境 该示例是使用以下方法开发的 Rails 4.1.4 Ruby 2.1.0p0 OS X ...

    grape-rails-routes:为 Grape with Rails 添加路由打印

    将 Grape API 路由装入 Rails 后,Grape API 路由通常不会打印在rake routes或/rails/info/routes 。 这个 gem 将 Grape 的路由打印功能添加到 Rails 中。 用法 将此行添加到您的Gemfile gem 'grape-rails-routes...

    grape-raketasks:简化任务以简化Grape API的开发和调试

    葡萄耙任务简化任务以简化Grape API的开发和调试。可用任务路线rake grape_raketasks:routes就像您的Grape API的rake routes一样。 Web应用程序中每个Grape API中的所有路由以及参数requiremements,HTTP动词,它...

    Grape.java

    Grape.java

    grape-ds:Aurora-Grape设计系统

    葡萄极光设计系统 关于我们的设计系统,设计标记(例如颜色,间距)和React组件的文档。 该项目包含两个子项目 ...与一起使用的Grape Design令牌。 建立 为了构建故事书和组件库,请确保安装Node.JS和ya

    rails-api-grape:基于Rails和Garpe开发前替代分离网站-逐步

    本仓库尽量保持业务逻辑的简洁,你可以是直接fork该项目,在此基础上直接进行网站的开发。 相关插件 栏杆5.2.3 葡萄1.2 葡萄实体0.7 昂首阔步 神成 jwt + bcrypt 的mysql2 专家 绕 项目配置 配置文件 cp confg/...

    grape:使用PErmutation组的GRAPH算法

    用于GAP的GRAPE 4.8.3软件包 GRAPE是Leonard H.Soicher编写的用于图形和组计算的GAP程序包,其中包括Steve Linton,Alexander Hulpke,Jerry James和Max Horn的贡献,其中包括Brendan McKay的nauty 2.2(最终补丁版...

    grape-api-generator:葡萄的Rails生成器脚本集合

    Grape API生成器 集合了Grape的所有Rails生成器脚本。 入门 将此行添加到 Rails 应用程序的 Gemfile 中: gem 'grape-api-generator' 然后运行bundle命令来安装它。 安装gem之后,您可以运行install生成器以生成...

    农夫果园实例 葡萄:Grape草莓:Strawberry苹果:Apple

    Grape类是水果类的一种,也实现Fruit接口中所声明的所有方法。但由于葡萄分为有籽和无籽的两种,因此比通常的水果多出一个seedless性质。 Strawberry类也是水果的一种,也实现了Fruit接口。 农场的园丁也是系统的...

    grape_logging:要求记录葡萄!

    grape_logging安装将此行添加到您的应用程序的Gemfile中: gem 'grape_logging'然后执行: $ bundle install或将其自己安装为: $ gem install grape_logging基本用法在您的api文件中(位于顶部的某个位置) require...

    grape-api-demo

    $ cd grape-api-demo $ gem install bundler $ bundle install --without production $ bundle exec rackup 如果您想在不重新加载服务器的情况下更改文件,请尝试 : $ bundle exec shotgun config.ru 执行 主要...

    Api-grape-swagger.zip

    Api-grape-swagger.zip,将OAPI/Swagger v2.0兼容文档添加到Grape的内容表中,一个api可以被认为是多个软件设备之间通信的指导手册。例如,api可用于web应用程序之间的数据库通信。通过提取实现并将数据放弃到对象中,...

    grape-bugsnag:Grape 扩展将 API 错误通知给 Bugsnag

    gem 'grape-bugsnag' 要求 Ruby &gt;= 2.0 用法 只是工作! ;) 确保在 Rails/Sinatra/Rack 应用程序的其他地方指定了您的 Bugsnag 凭据。 去做 允许对通知哪些异常进行更细粒度的控制。 贡献 分叉它( /grape-bugsnag/...

    rails+grape+swagger+devise+capistrano 简单融合示例

    rails语言api项目 使用grape和swagger的简单api项目 使用devise做简易的用户登录需求,使用capistrano部署

    grape-on-rack:安装在RACK上的演示Grape API

    机架上的Grape API 安装在机架上的 API。 :一个返回JSON文档的世界示例 :一个简单的POST和PUT示例 :显示JSON数据的POST的示例 :预处理作为JSON数据发送的参数的示例 :的一个例子rescue_from其包装在一个HTTP...

    农夫果园试题C#版Grape,Strawberry,Apple

    农夫果园试题C#版Grape,Strawberry,Apple ,之前我也找过是Java的现在编译成C#版

Global site tag (gtag.js) - Google Analytics