Tag: rest

Github API使用OAuth访问私有存储库

尝试使用API​​访问我所属的Github组织的私有存储库中的文件。 到目前为止尝试了几种不同的方法: 1.如果我使用用户名/密码方法 – curl -u “sashafklein:mypassword” https://api.github.com/repos/:org/:repo/git/trees/:file_sha 它工作正常,但我试图从协作Rails应用程序访问repos,所以我不想公开我的github登录凭据。 我想创建一个虚拟GH帐户可以访问并使用这些凭据是可能的,但它绝对不是理想的.. 所以我查看了API文档中的OAuth2 Secret / Key方法。 但它不起作用。 如果我使用我的凭据curlorg repo url作为url中的params: curl -i “https://api.github.com/orgs/:org/repos?private&client_id=&client_secret=” 只有公开回购出现。 这可能是我如何传递params的问题(理论上传递“?private = true”然后返回一个空列表,但列表是相同的并且所有公共存储库),但我正在关注文档。 3.所以我感到很沮丧,并看看这些文档获取OAuth令牌,但我很困惑如何更改它,以便没有用户界面 – 即,以便我的应用程序可以自动访问Github Orgs其中我是其成员,没有其用户必须做任何特别的事情。 我有什么想法尝试2,或者如何让尝试3自动运行? 我很难过。 编辑我认为我的client_id / secret是错误的,因为即使我使用Octokit,它也无法访问受保护的回购。 我明白这个错吗? 就像我一样,我在Github上为我的Rails应用程序创建了一个“应用程序”,我正在尝试使用这些凭据来访问org的私有存储库(我是其贡献者)使用API​​。

用于Ruby on Rails中的RESTful服务的WADL / WSDL 2.0

有没有办法在Ruby on Rails中发布RESTful方法所期望的参数? 使用SOAP,我们可以使用WSDL,但是RoR是否为RESTful服务实现WADL或WSDL 2.0? 编辑:我知道使用ActionWebService的基于SOAP的解决方案。 我指的是相当于https://wadl.dev.java.net/的RoR

RESTful应用程序中的XSRF

我是一名ASP.NET开发人员,试图学习Rails和RESTful方法。 为了理解,我打算编写一个电子邮件客户端,它将对服务器进行RESTful GET调用以获取电子邮件,并发送POST以发送电子邮件。 要遵循哪些最佳实践(通用和/或特定于Rails),以便上述应用程序不会暴露任何XSRF漏洞。

为什么Ruby on Rails书或引用总是说更新是由PUT而Destroy是由DELETE而不是?

因为如果我使用Fiddler来监控它,它是: CRUD Method Path With Idempotent? action —- —— —- —- ———– —— Create POST /foos/ No create Retrieve GET /foos/:id Yes show Update POST /foos/:id _method=put Yes update Destroy POST /foos/:id _method=delete Yes destroy 所以实际上并没有使用PUT和DELETE (作为HTTP动词)。 但为什么Rails书籍和参考文献总是说它是PUT和DELETE ?

葡萄error handling策略?

我正在使用Grape和Rails创建REST API。 我有基本的架构,我正在寻找“清理”的地方。 其中一个地方是error handling/处理。 我目前正在整个API的root.rb(GRAPE :: API基类)文件中解决错误。 我格式化它们然后通过rack_response发回错误。 一切正常,但是root.rb文件变得有点臃肿,所有的错误都被拯救了,其中一些有特殊的解析需要完成。 我想知道是否有人为error handling制定了一个好的策略,以便它可以移动到它自己的模块中并使root.rb(GRAPE :: API基类)相当精简。 我真的想创建一个error handling模块并为每种类型的错误定义方法,例如…… module API module ErrorHandler def record_not_found rack_response API::Utils::ApiErrors.new({type: e.class.name, message: ‘Record not found’}).to_json, 404 end end end 然后在root.rb文件中执行类似的操作 module API class Root < Grape::API prefix 'api' format :json helpers API::ErrorHandler rescue_from ActiveRecord::RecordNotFound, with: :record_not_found # Use the helper method […]

保护REST和JSON

我想使用RESTful架构构建我的Web服务来提供JSON数据。 但我只想要我自己的客户端应用程序可以从我的Web服务请求。 基本上,我的Web服务包含非公共消费的敏感数据,但我想以这种方式构建它,以便我可以构建许多连接到我的Web服务的不同客户端应用程序。 非常感谢任何想法,谢谢。

Rails创建操作在应该呈现新操作时重定向到索引

如果我提交有错误的新用户表单,它会重定向到索引页面,然后在其上呈现新页面。 在控制器中,我指定它应该只呈现新操作,以便用户可以查看/修复他们的错误并重新提交。 有什么明显的东西让我失踪吗? 这是我的控制器代码中的创建操作: def create @user = User.new(params[:user]) @user.role = “owner” if @user.save flash[:notice] = “Registration successful!” else flash.now[:notice] = “You have errors!” render :new end end

将ActiveRecordvalidation错误转换为API耗材错误

我正在Rails 4中编写一个非常标准的CRUD RESTful API。虽然我在error handling方面做得不够。 想象一下,我有以下型号: class Book < ActiveRecord::Base validates :title, presence: true end 如果我尝试创建没有标题的图书对象,我将收到以下错误: { “title”: [ “can’t be blank” ] } ActiveRecordvalidation旨在与Forms一起使用。 理想情况下,我希望将每个人类可读validation错误与API使用者可以使用的常量相匹配。 所以类似于: { “title”: [ “can’t be blank” ], “error_code”: “TITLE_ERROR” } 这可以用于显示面向用户的错误( “标题不能为空” ),也可以在其他代码中使用( if response.error_code === TITLE_ERROR …)。 在Rails中是否有任何工具? 编辑:这是Rails 2天非常相似的问题 。

Rails,REST架构和HTML 5:具有飞行前请求的跨域请求

在开展项目以使我们的网站HTML 5友好时,我们渴望采用跨域请求的新方法(不再通过隐藏的iframe发布!!!)。 使用访问控制规范,我们开始设置一些测试来validation各种浏览器的行为。 当前的Rails RESTful架构依赖于四个HTTP谓词:GET,POST,PUT,DELETE。 但是,在访问控制规范中,它规定非简单方法(PUT,DELETE)需要使用HTTP谓词OPTIONS的飞行前请求。 此外,在测试期间,我们还发现了Firefox 3.5.8的飞行前POST请求。 我的问题是这个。 是否有人知道Rails框架的任何项目正在解决这个问题? 如果没有,有关支持OPTIONS方法的最佳策略的任何意见,因为它必须支持所有POST,PUT,DELETE方法的路由?

你如何通过ID以外的东西获取RESTful资源?

在某些情况下,我需要通过ID以外的参数来查找对象。 什么是正确的RESTful方式呢? 例如,我可能想要通过username和password找到User ,因此严格的RESTful“ GET /users/1 ”将无效。 根据Rails文档,这是获取资源的所有实例的URL模式:“ GET /users ”。 我可以添加参数:“ GET /users?username=joe&password=topsecret ”,但这会违反GET请求的官方目的。