swagger-core defines annotations and required logic to generate a Swagger server or client.
Clone or download
Pull request Compare This branch is 3086 commits behind swagger-api:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Swagger Core library

See the Wiki!

The github wiki contains documentation, samples, etc. Start there


This is a project to build the swagger-core library, which is required for the Wordnik implementation of 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.

Version history

v1.2.0 Nov-27 2012

  • - Updated listing path to /api-docs.json
  • - Moved swagger-play2 and swagger-play2-utils to maven central

    v1.1.0 Aug-22 2012

  • - Spec [clarifications](https://github.com/wordnik/swagger-core/wiki/Changelog)
  • - Updated to Jackson 2.0.x, added sample with [scala case classes](https://github.com/wordnik/swagger-core/tree/master/samples/scala-jaxrs-jackson2)
  • - Play 2.0.2 supported
  • - Pluggable model processor, added configurable package introspection
  • - Feature parity between JAX-RS & Play 2, java, scala
  • - Made .{format} [configurable](https://github.com/wordnik/swagger-core/tree/master/samples/scala-jaxrs-no-format), see [here](https://github.com/wordnik/swagger-core/blob/master/samples/scala-jaxrs-no-format/src/main/scala/com/wordnik/swagger/sample/Bootstrap.scala#L24)
  • - Added support for alternate resource listing, examples in [scala](https://github.com/wordnik/swagger-core/tree/master/samples/scala-alt-resource-listing) and [java](https://github.com/wordnik/swagger-core/tree/master/samples/java-alt-resource-listing)
  • - Moved swagger spec to github [wiki](https://github.com/wordnik/swagger-core/wiki)

    v1.01 Jan-31 2012

  • - Transitioned build to Maven
  • - Removed jaxrs dependencies from swagger-core
  • - Moved sample server implementations into /samples directory
  • - Added support for alternate API listing paths
  • - Made .{format} optional
  • - Added crazy scala versioning into artifact names (Scala 2.8.1 => ${artifact}_2.8.1)
  • - Added test and integration test through default maven integration-test lifecycle
  • v1.0 Aug-10 2011

  • - Initial release of swagger
  • Pre-release versions will be suffixed with SNAPSHOT and RC appropriately. If you want the release version, please grab it by tag (i.e. v1.0 for the release)


    You need the following installed and available in your $PATH:

  • - Java 1.6 or greater (http://java.oracle.com)
  • - Apache maven 3.0.3 or greater (http://maven.apache.org/)
  • - Scala 2.9.1-1 [available here](http://www.scala-lang.org). Note that 2.9.1 has a defect which causes problems with Jax-RS

    To build from source (currently 1.1.1-SNAPSHOT)

    # first time building locally
    mvn -N

    Subsequent builds:

    mvn install

    This will build the modules and sample apps.

    Of course if you don't want to build locally you can grab artifacts from maven central:


    And Play2 modules are in our github repo:


    Sample Apps

    There are a number of sample apps in the samples folder:

    java-jaxrs Java-based swagger server with JAX-RS

    scala-jaxrs Scala-based swagger server with JAX-RS

    java-alt-resource-listing Scala-based swagger server with JAX-RS with an alternate resource listing scheme

    scala-alt-resource-listing Scala-based swagger server with JAX-RS with an alternate resource listing scheme

    scala-jaxrs-apm Scala-based swagger server using wordnik-oss utils for Application Performance Monitoring (APM)

    To run a sample app after initial compile:

    # run scala-jaxrs sample app
    cd samples/scala-jaxrs
    mvn jetty:run

    And the Play2 samples:

    java-play2 Java-based Play2 sample app

    scala-play2 Scala-based Play2 sample app

    scala-play2-no-format Scala-based Play2 sample app without the .{format} in resource listing

    To run the Play2 sample apps:

    cd samples/java-play2
    play run


    Copyright 2012 Wordnik, Inc.

    Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.