2012-04-22 15:40:09 -04:00
# httparty
2008-07-27 11:52:18 -04:00
2020-06-01 10:08:23 +02:00
[](https://travis-ci.org/jnunemaker/httparty)
2017-12-11 16:10:37 -05:00
Makes http fun again! Ain't no party like a httparty, because a httparty don't stop.
2008-07-27 11:52:18 -04:00
2012-04-22 15:40:09 -04:00
## Install
2008-07-27 11:52:18 -04:00
2012-04-22 15:40:09 -04:00
```
gem install httparty
```
2008-07-27 11:52:18 -04:00
2012-04-22 15:40:09 -04:00
## Requirements
2008-07-27 11:52:18 -04:00
2016-07-29 08:36:41 -04:00
* Ruby 2.0.0 or higher
2013-06-14 13:24:45 -07:00
* multi_xml
2012-04-22 15:40:09 -04:00
* You like to party!
2008-09-19 16:32:03 -07:00
2012-04-22 15:40:09 -04:00
## Examples
2012-04-15 21:53:59 -04:00
2012-04-22 15:44:45 -04:00
```ruby
# Use the class methods to get down to business quickly
2015-08-10 14:18:57 -07:00
response = HTTParty.get('http://api.stackexchange.com/2.2/questions?site=stackoverflow')
2012-04-22 15:44:45 -04:00
2014-03-11 17:31:22 -05:00
puts response.body, response.code, response.message, response.headers.inspect
2012-04-22 15:44:45 -04:00
# Or wrap things up in your own class
2014-03-11 17:31:22 -05:00
class StackExchange
2012-04-22 15:44:45 -04:00
include HTTParty
2014-03-11 17:31:22 -05:00
base_uri 'api.stackexchange.com'
2012-04-22 15:44:45 -04:00
2014-03-11 17:31:22 -05:00
def initialize(service, page)
2016-11-08 15:20:36 +01:00
@options = { query: { site: service, page: page } }
2012-04-22 15:44:45 -04:00
end
2014-03-11 17:31:22 -05:00
def questions
self.class.get("/2.2/questions", @options )
2012-04-22 15:44:45 -04:00
end
2014-03-11 17:31:22 -05:00
def users
self.class.get("/2.2/users", @options )
2012-04-22 15:44:45 -04:00
end
end
2014-03-11 17:31:22 -05:00
stack_exchange = StackExchange.new("stackoverflow", 1)
puts stack_exchange.questions
puts stack_exchange.users
2012-04-22 15:44:45 -04:00
```
See the [examples directory ](http://github.com/jnunemaker/httparty/tree/master/examples ) for even more goodies.
2012-04-15 21:53:59 -04:00
2012-04-22 15:40:09 -04:00
## Command Line Interface
2009-01-05 01:58:08 -05:00
2012-04-22 15:44:45 -04:00
httparty also includes the executable `httparty` which can be
2009-01-05 01:58:08 -05:00
used to query web services and examine the resulting output. By default
it will output the response as a pretty-printed Ruby object (useful for
grokking the structure of output). This can also be overridden to output
2012-04-22 15:44:45 -04:00
formatted XML or JSON. Execute `httparty --help` for all the
2009-01-05 01:58:08 -05:00
options. Below is an example of how easy it is.
2012-04-22 15:40:09 -04:00
```
2014-03-11 17:31:22 -05:00
httparty "https://api.stackexchange.com/2.2/questions?site=stackoverflow"
2012-04-22 15:40:09 -04:00
```
2008-07-27 11:52:18 -04:00
2012-04-22 15:40:09 -04:00
## Help and Docs
2009-04-30 07:58:49 -04:00
2016-09-12 10:56:41 +01:00
* [Docs ](https://github.com/jnunemaker/httparty/tree/master/docs )
2021-04-29 12:01:00 -04:00
* https://github.com/jnunemaker/httparty/discussions
2018-08-15 11:02:04 +08:00
* https://www.rubydoc.info/github/jnunemaker/httparty
2012-04-22 15:40:09 -04:00
## Contributing
* Fork the project.
2014-05-16 15:50:16 -04:00
* Run `bundle`
* Run `bundle exec rake`
2012-04-22 15:40:09 -04:00
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a future version unintentionally.
2014-05-16 15:50:16 -04:00
* Run `bundle exec rake` (No, REALLY :))
2012-04-22 15:40:09 -04:00
* Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself in another branch so I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.