补充下,如果是用的 mina
或者 capstranio
, 类似代码如下:
# Manually create these paths in shared/ (eg: shared/config/database.yml) in your server.
# They will be linked in the 'deploy:link_shared_paths' step.
set :shared_paths, ['config/mongoid.yml', 'config/application.yml', 'log', 'tmp', 'public/uploads', 'public/personal' ]
#2 楼 @luckyyang meteor 很有潜力。思路上与 ruby 下的 volt 很像 ( 或者说 volt 是借自 meteor ? )
到招聘板看看,大多都有薪水期望。具体看能力。
@iBachue 用 Rails Gem 会非常简单,楼主可尝试使用 browser Gem
Just add it to the Gemfile.
gem "browser"
This adds a helper method called browser, that inspects your current user agent.
<% if browser.ie6? %>
<p class="disclaimer">You're running an older IE version. Please update it!</p>
<% end %>
你问题提的不明不白。在出现问题时,可以尝试在 console 中用 reload!
来重新加载代码,如果好用了,说明 rails c
需要重启。
#36 楼 @iBachue 既然是完整的 API, 返回值要保证正确。验证返回值就很有必要,APIDOC 中也要体现出来。当然,这些校验都是可选的。
配置如下:
# lina config file
Lina.setup do |config|
#是否开启返回值参数校验
#config.return_check = true
#返回值校验时使用的 json schema 版本, 更多: http://tools.ietf.org/html/draft-zyp-json-schema-04
#config.return_json_schema_version = :v4
end
你不想关闭全局校验的话也可以直接用 return: {}
留空来达到与 Grape 一样的效果。
#34 楼 @iBachue 当然可以自己写个 validator, 但还要生成 APIDOC. Lina 就完全可以做到。实际上这个需求并非多变态,在处理返回值需求的时候,很经常会用到多值 ( 例如 JSON Schema 的 oneOf ), 因为有错误处理,用 Lina 之后,这种 APIDOC 会非常漂亮,而且可以帮助你检查返回值是否符合需求。
另外,Grape 非常不错,适用于纯 API 场景,但集成到 Rails 里总是感觉不舒服,Lina 更适合于 Railser 使用,它本质上就是 Rails + jbuilder 的加强版,既写页面很不错,又写 API 更好 ( Lina 的支持 ), 何乐而不为呢?
#31 楼 @iBachue Grape 非常 Nice, 这个我很认同。如果要讨论 JSON Schema 与 Grape 的 params DSL, 我要说,完备性太重要重要了,试想,如果你要定义一个 JSON 结构,结果 Grape DSL 支持不了怎么办?更何况,我个人认为对于参数自定义的 DSL 并不好用。
比如这个:http://json-schema.org/example2.html, 是否可以用 Grape DSL 定义出来?
而在正常情况下,也有可能遇到这种情况,比如返回值可能有多种 hash, 比如参数里还有子 hash, 子数组。
#26 楼 @iBachue Grape
确实已经非常好,不过有不少人比如我更喜欢 Rails
风格的 RESTful API 写法,Lina 便是另一个选择。
Hash 的方式不如 DSL 好看,但我没有定义像 Grape
那样定义 DSL, 正是因为表面的简单带来了复杂的 DSL 学习成本高,还不如直接找一个有官方维护的标准,这便是 JSON Schema
. 最主要的是完备性。相信如果你看一个 更复杂的 JSON 的例子就明白了:http://json-schema.org/example2.html, 可以看看 Grape
中能否实现这个参数声明。
当然可以。
https://ruby-china.org/topics/24369 正好这篇帖子里面列举了 Ruby 中写 API 的几个框架。
#20 楼 @bxd602 logo 还有很多改进空间,欢迎给个设计图 PR.
#24 楼 @flowerwrong 你说的是在线模拟测试吧,很多 API 都会有登录限制,或权限约束,还不如直接用一些 chrome 插件或者本地的方案比如:
所以,不太考虑这个特性。
#16 楼 @kayakjiang 嗯,收到,#1 楼 也提了这个建议。接下来几个版本还会不断改善 APIDOC, 最后应该还要做到可以方便定制。
#54 楼 @seveniruby nginx 有漏洞也是有可能的,具体的要查看一下版本号,再检查一下它的日志。
另外,nginx 出问题可能性很小,极有可能是背后的进程有漏洞导致。
#9 楼 @yesmeck 刚看到,这个项目很像 Lina, 它自己定义了一套 DSL 来声明参数,思路蛮像。一个区别是,它的定位是 Rails API 生成工具,Lina 的定位是一个 API 框架。另外,实际上做一套完备的 JSON 声明是非常麻烦 ( 我看了下,它定义了众多的 DSL, 难于记忆 ), JSON Schema
已经发展到 v4 草案了。我相信用 JSON Schema
来实现还是非常有优势的:
谢谢你的介绍。
#1 楼 @flowerwrong 响应式好主意,收下此建议。你另说的模拟操作是指什么?
#xx.json.jbuilder
if @post.blank?
json.error 'not record yet'
else
json.extract! @post, :id, :name
end
#3 楼 @chanshunli 一个游戏角色名字,其实比较霸气的
一般直接用 rack-cors
即可。
:plus1: 在我刚毕业的时候读过这一篇,收获颇丰。
like this:
if ENV['RUBYTAOBAO']
#puts "use taobao source"
source 'http://ruby.taobao.org'
else
source 'https://rubygems.org'
end
开发环境在 .bashrc 弄一个环境变量:
RUBYTAOBAO=1
这个问题其实是等价于:
如何使用 Rails
提供 JSON API?
可以尝试以下方案:
grape
rails-api
rails + jbuilder
, 这个方案非常不错。lina
是我最近刚开发的一个 API 框架,几乎与 第 3 方案一致,还可以自动生成 API 文档。Both files, directoriess and glob patterns can be specified on the command line. Files will be added as-is. If a directory is specified, OCRA will include all files found below that directory. Glob patterns (See Dir.glob) can be used to specify a specific set of files, for example:
ocra script.rb assets/**/*.png
自己多看看它的文档,试试吧,问题解决最多给你一个思路。
#5 楼 @736248591 OCRA 编译说明有说明多文件会自动打包依赖:https://github.com/larsch/ocra#compilation
但我想,你应该这样:
设定一个统一的加载目录,例如:
在主文件中用:$LOAD_PATH.unshift( File.dirname(__FILE__) )
主文件中直接用相对目录 require
: require script/manager
over. 这样的话 OCRA 应该会自动帮你搞定依赖。