我想要一些关于设计REST API的建议,它允许客户有效地向集合中添加/删除大量对象.
通过API,客户端需要能够向集合中添加项目并从中删除项目,以及操作现有项目.在许多情况下,客户端将希望对集合进行批量更新,例如添加1000个项目并删除500个不同的项目.感觉客户端应该能够在与服务器的单个事务中执行此操作,而不是需要1000个单独的POST请求和500个DELETE.
有没有人有关于实现这一目标的最佳做法或惯例的任何信息?
我当前的想法是,应该能够将表示对集合URI的更改的对象PUT,但这似乎与HTTP 1.1 RFC不一致,这似乎表明在PUT请求中发送的数据应该独立于数据已经存在于URI中.这意味着客户端必须一次性发送集合的新状态的完整描述,这可能远远大于更改,或者甚至超过客户端在发出请求时所知道的.
显然,如果有必要,我很乐意偏离RFC,但如果存在这样的约定,我宁愿以传统方式这样做.
我的机器上的ruby存在性能问题,我认为我已经将其隔离到加载库(当调用#require时),所以我想弄清楚ruby是否正在为库搜索太多文件夹.
我跑的时候
$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.0
- RUBY VERSION: 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-9
- GEM PATHS:
- /Library/Ruby/Gems/1.8
- /Users/matt/.gem/ruby/1.8
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org", "http://gems.github.com/"]
- REMOTE SOURCES:
- http://gems.rubyforge.org …
Run Code Online (Sandbox Code Playgroud) 尽管我试图将我的单元测试与数据库等等断开连接,但最好的行为似乎仍然是不可避免的,当我等待机器做一些无聊的事情时,我的一天会被小规则的强制休息打断.
我个人觉得剑术让我失去了思路.当我运行构建或测试套件时,我经常"在区域内",而且我更喜欢让我处于同一焦点心态的东西,一旦构建/测试运行,我就会立刻回到黑客攻击/迁移已完成.
我曾经幻想过在构建过程中弹出的Visual Studio的Tetris插件然后在构建完成后自动暂停并消失,但我从未真正做过任何事情.最近,我们想建立的东西到自动测试可以帮助你学习西班牙语,而你等待测试运行,或可能喂你的相关堆栈溢出的问题来回答.
所以.建议请.积极而有益的活动.