README.md in rack-swagger-0.0.1 vs README.md in rack-swagger-0.0.6
- old
+ new
@@ -18,14 +18,98 @@
$ gem install rack-swagger
## Usage
-TODO: Write usage instructions here
+Set up a docs folder in your project. Place the root API doc there and call it
+"swagger.json". Place your resource API docs there as well. For example, if you
+have one resource called "pet", your docs folder will have two files:
+* swagger.json (the root API doc)
+* pet.json (the pet resource)
+
+In your config.ru, run Rack::Swagger.app(), passing in the path to your docs
+folder.
+
+```ruby
+run Rack::Swagger.app(File.expand_path("../docs/", __FILE__))
+```
+
+This will serve the swagger-ui front-end at **/docs/**, and your
+doc files at **/docs/api-docs/**.
+
+Your resource definitions should look ike this:
+
+```json
+ {
+ "path": "/pet",
+ "description": "Operations about pets"
+ },
+```
+
+## Getting basePath right
+
+##### Using overwrite_base_path
+
+If you are seeing a lot of 404s or CORS-related errors in your docs, you may
+need to tweak the basePath.
+
+You always need to have the basePath point to the same hostname as your API. If
+you have multiple deploys of your application under different hostnames, and
+they share the same set of JSON files, you can use the overwrite_base_path
+option in Rack::Swagger.app() to vary this dynamically.
+
+For example, say you have an environment variable called MY_API_HOST, which
+contains the hostname of your app for a given deployment:
+
+```ruby
+ Rack::Swagger.app(
+ File.expand_path("../docs/", __FILE__),
+ overwrite_base_path: ENV["MY_API_HOST"]
+ )
+```
+
+##### Setting basePath manually
+
+If you're not using overwrite_base_path, rack-swagger will just use your
+basePath value from your JSON files. But just know that basePath will have
+different values depending on the file:
+
+* For the resource files, it should point to the API root path.
+* For the root file, it should point to the API root path, plus "/docs/api-docs".
+
+## Upgrading swagger-ui
+
+A distribution of swagger-ui is included with rack-swagger. For developers who
+want to upgrade this distribution, there is a Rake task which pulls down the
+latest version and applies some changes to it. To use, run:
+
+```
+rake swagger_ui
+```
+
+If someone downloads the distribution without using the Rake task and you're
+trying to restore back to the original, remove the directory and version
+file before running the rake task:
+
+```
+rm -rf swagger-ui/
+rm swagger_ui_version.yml
+rake swagger_ui
+```
+
+Then check in the updated code.
+
+## Notes
+
+For an example of properly formatted Swagger 1.2 JSON files working together
+with [swagger-ui](https://github.com/wordnik/swagger-ui), see:
+[http://petstore.swagger.wordnik.com/](Pet Store Demo).
+
## Contributing
1. Fork it ( https://github.com/[my-github-username]/rack-swagger/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
+