README.md in rspec-api-0.2.0 vs README.md in rspec-api-0.4.0
- old
+ new
@@ -1,16 +1,102 @@
RSpec API
=========
-More info at [http://rspec-api.github.io](http://rspec-api.github.io)
+RSpec API aims to make it easy to document and test [pragmatic RESTful web APIs](http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api).
-[![Build Status](https://travis-ci.org/rspec-api/rspec-api.png)](https://travis-ci.org/rspec-api/rspec-api)
+It is still under development, and you can follow its progress by checking out the code on Github.
+
+More documentation and examples are available at [http://rspec-api.github.io](http://rspec-api.github.io)
+
+[![Build Status](https://travis-ci.org/rspec-api/rspec-api.png?branch=master)](https://travis-ci.org/rspec-api/rspec-api)
[![Code Climate](https://codeclimate.com/github/rspec-api/rspec-api.png)](https://codeclimate.com/github/rspec-api/rspec-api)
[![Coverage Status](https://coveralls.io/repos/rspec-api/rspec-api/badge.png)](https://coveralls.io/r/rspec-api/rspec-api)
[![Dependency Status](https://gemnasium.com/rspec-api/rspec-api.png)](https://gemnasium.com/rspec-api/rspec-api)
-How to test
-===========
+A basic example
+---------------
-* Create a new [GitHub personal authentication token](https://github.com/settings/applications)
-* Store it in an environment variable called `RSPEC_API_GITHUB_TOKEN` (e.g., on OS X, type `export RSPEC_API_GITHUB_TOKEN=...`)
-* Run `rspec`
\ No newline at end of file
+RSpec API can help develop and document your own web APIs.
+A basic example of running RSpec API locally is provided, comprised of:
+
+* a Ruby on Rails *app* that provides a RESTful API for concerts (in [spec/dummy](https://github.com/rspec-api/rspec-api/tree/master/spec/dummy))
+* a *test suite* that verifies the expected behavior of the API (in [spec/features/local/](https://github.com/rspec-api/rspec-api/blob/master/spec/features/local/gigs/gigs_spec.rb))
+
+Run the basic example with the following commands:
+
+ git clone https://github.com/rspec-api/rspec-api.git
+ cd rspec-api
+ bundle
+ bundle exec rake db:migrate
+ bundle exec rspec spec/features/local
+
+And you should see all the successful promises matched by the concerts API:
+
+ Concerts
+ GET /concerts
+ by default
+ responds with a status code that
+ should be 200
+ responds with headers that
+ should include 'Content-Type': 'application/json; charset=utf-8'
+ should include 'Link' (for pagination)
+ ...
+ DELETE /concerts/:id
+ given an existing id
+ responds with a status code that
+ should be 204
+
+ Finished in 0.73864 seconds
+ 151 examples, 0 failures
+
+
+The GitHub API example
+----------------------
+
+RSpec API can help specify and verify promises for remote APIs.
+An example of running RSpec API for a remote API is provided in [spec/features/remote](https://github.com/rspec-api/rspec-api/blob/master/spec/features/remote).
+The code verifies the expected behavior of a number of endpoints of the [GitHub API](http://developer.github.com):
+
+* Activity resources (events, feeds, notifications, starring, watching)
+* Gists resources (gists, gist comments)
+* Git data resources (blobs, commits)
+* Repository resources (repos)
+
+Before running the example, get a GitHub Personal Access Token:
+
+* Browse to your [GitHub settings](https://github.com/settings/applications)
+* Click on 'Create new token' under 'Personal Access Token' (name it as you want)
+* Copy the generated token and store it on your machine as the environment variable called `RSPEC_API_GITHUB_TOKEN`:
+ * On OSX and bash, accomplish this by running the command `export RSPEC_API_GITHUB_TOKEN=` followed by your pasted key (no spaces after `=`)
+
+Now, run the GitHub API example with the following commands:
+
+ git clone https://github.com/rspec-api/rspec-api.git
+ cd rspec-api
+ bundle
+ bundle exec rspec spec/features/remote
+
+And you should see all the successful promises matched by the GitHub API:
+
+ Events
+ GET https://api.github.com/events
+ by default
+ responds with a status code that
+ should be 200
+ responds with headers that
+ should include 'Content-Type': 'application/json; charset=utf-8'
+ should include 'Link' (for pagination)
+ ...
+ DELETE https://api.github.com/gists/:id/star
+ given an existing id 0d7b597d822102148810
+ responds with a status code that
+ should be 204
+
+ Finished in 1 minute 19.74 seconds
+ 1237 examples, 1 failure, 4 pending
+
+How to contribute
+=================
+
+Don’t hesitate to send me code comments, issues or pull requests through GitHub!
+All feedback is appreciated. Thanks :)
+