Swagger Jackson-2 Sample App
This is a scala project to build a stand-alone server which implements the Swagger spec. You can find out more about both the spec and the framework at http://swagger.wordnik.com. For more information about Wordnik's APIs, please visit http://developer.wordnik.com. There is an online version of this server at http://petstore.swagger.wordnik.com/api/resources.json
This example uses the Jackson scala module, which allows transformation between scala case classes and JSON.
To build from source
Please follow instructions to build the top-level swagger-core project
To run (with Maven)
To run the server, run this task:
mvn package -Dlog4j.configuration=file:./conf/log4j.properties jetty:run
This will start Jetty embedded on port 8002 and apply the logging configuration from conf/log4j.properties
Testing the server
Once started, you can navigate to http://localhost:8002/api/resources.json to view the Swagger Resource Listing. This tells you that the server is up and ready to demonstrate Swagger.
Using the UI
There is an HTML5-based API tool available in a separate project. This lets you inspect the API using an intuitive UI. You can pull this code from here: https://github.com/wordnik/swagger-ui
You can then open the src/main/html/index.html file in any HTML5-enabled browser. Upen opening, enter the URL of your server in the top-centered input box (default is http://localhost:8002/api). Click the "Explore" button and you should see the resources available on the server.
Applying an API key
The sample app has an implementation of the Swagger ApiAuthorizationFilter. This restricts access to resources based on api-key. There are two keys defined in the sample app:
When no key is applied, the "default-key" is applied to all operations. If the "special-key" is entered, a number of other resources are shown in the UI, including sample CRUD operations. Note this behavior is similar to that on http://developer.wordnik.com/docs but the behavior is entirely up to the implementor.