Skip to content

Commit 07030e1

Browse files
committed
Merge branch 'develop_2.0'
2 parents b6f7f85 + c04f947 commit 07030e1

File tree

360 files changed

+16835
-7027
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

360 files changed

+16835
-7027
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
sudo: false
12
language: java
23
script: mvn verify
34
jdk:

README.md

Lines changed: 68 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ The goal of Swagger™ is to define a standard, language-agnostic interface to R
1313
Check out [Swagger-Spec](https://github.com/swagger-api/swagger-spec) for additional information about the Swagger project, including additional libraries with support for other languages and more.
1414

1515

16-
## Compatibility
17-
The Swagger Specification has undergone 3 revisions since initial creation in 2010. The swagger-codegen project has the following compatibilities with the swagger specification:
16+
## Compatability
17+
The Swagger Specification has undergone 3 revisions since initial creation in 2010. The swagger-codegen project has the following compatibilies with the swagger specification:
1818

19-
Swagger Codegen Version | Release Date | Swagger Spec compatability | Notes
19+
Swagger Codegen Version | Release Date | Swagger Spec compatibility | Notes
2020
----------------------- | ------------ | -------------------------- | -----
21-
2.1.2-M1 (master) | 2015-02-23 | 1.0, 1.1, 1.2, 2.0 | [tag v2.1.0-M1](https://github.com/swagger-api/swagger-codegen)
21+
1.5.0-M2 | 2015-04-06 | 1.0, 1.1, 1.2, 2.0 | [master](https://github.com/swagger-api/swagger-codegen)
2222
2.0.17 | 2014-08-22 | 1.1, 1.2 | [tag v2.0.17](https://github.com/swagger-api/swagger-codegen/tree/v2.0.17)
2323
1.0.4 | 2012-04-12 | 1.0, 1.1 | [tag v1.0.4](https://github.com/swagger-api/swagger-codegen/tree/swagger-codegen_2.9.1-1.1)
2424

@@ -46,29 +46,47 @@ You can build a client against the swagger sample [petstore](http://petstore.swa
4646
This will run the generator with this command:
4747

4848
```
49-
java -jar modules/swagger-codegen-distribution/target/swagger-codegen-distribution-2.1.2-M1.jar \
49+
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
5050
-i http://petstore.swagger.io/v2/swagger.json \
5151
-l java \
5252
-o samples/client/petstore/java
5353
```
5454

55-
With a number of options. You can get the options with the -h flag:
56-
```
57-
usage: Codegen
58-
-a,--auth addes authorization headers when fetching the
59-
swagger definitions remotely. Pass in a
60-
URL-encoded string of name:header with a comma
61-
separating multiple values
62-
-d,--debug-info prints additional info for debugging
63-
-h,--help shows this message
64-
-i,--input-spec <arg> location of the swagger spec, as URL or file
65-
-l,--lang <arg> client language to generate.
66-
Available languages include:
67-
[android, java, jaxrs, nodejs, objc, scalatra,
68-
scala, dynamic-html, html, swagger, tizen, php,
69-
python]
70-
-o,--output <arg> where to write the generated files
71-
-t,--template-dir <arg> folder containing the template files
55+
With a number of options. You can get the options with the `help generate` command:
56+
57+
```
58+
NAME
59+
swagger generate - Generate code with chosen lang
60+
61+
SYNOPSIS
62+
swagger generate [(-a <authorization> | --auth <authorization>)]
63+
(-i <spec file> | --input-spec <spec file>)
64+
(-l <language> | --lang <language>)
65+
[(-o <output directory> | --output <output directory>)]
66+
[(-t <template directory> | --template-dir <template directory>)]
67+
[(-v | --verbose)]
68+
69+
OPTIONS
70+
-a <authorization>, --auth <authorization>
71+
adds authorization headers when fetching the swagger definitions
72+
remotely. Pass in a URL-encoded string of name:header with a comma
73+
separating multiple values
74+
75+
-i <spec file>, --input-spec <spec file>
76+
location of the swagger spec, as URL or file (required)
77+
78+
-l <language>, --lang <language>
79+
client language to generate (maybe class name in classpath,
80+
required)
81+
82+
-o <output directory>, --output <output directory>
83+
where to write the generated files (current dir by default)
84+
85+
-t <template directory>, --template-dir <template directory>
86+
folder containing the template files
87+
88+
-v, --verbose
89+
verbose mode
7290
```
7391

7492
You can then compile and run the client, as well as unit tests against it:
@@ -91,7 +109,17 @@ It's just as easy--just use the `-i` flag to point to either a server or file.
91109
### Modifying the client library format
92110
Don't like the default swagger client syntax? Want a different language supported? No problem! Swagger codegen processes mustache templates with the [jmustache](https://github.com/samskivert/jmustache) engine. You can modify our templates or make your own.
93111

94-
You can look at `modules/swagger-codegen/src/main/resources/${your-language}` for examples. To make your own templates, create your own files and use the `-t` flag to specify your tempalte folder. It actually is that easy.
112+
You can look at `modules/swagger-codegen/src/main/resources/${your-language}` for examples. To make your own templates, create your own files and use the `-t` flag to specify your template folder. It actually is that easy.
113+
114+
### Making your own codegen modules
115+
If you're starting a project with a new language and don't see what you need, swagger-codegen can help you create a project to generate your own libraries:
116+
117+
```
118+
java -jar modules/swagger-codegen-distribution/target/swagger-codegen-cli.jar meta \
119+
-o output/myLibrary -n myClientCodegen -p com.my.company.codegen
120+
```
121+
122+
This will write, in the folder `output/myLibrary`, all the files you need to get started, including a README.md. Once modified and compiled, you can load your library with the codegen and generate clients with your own, custom-rolled logic.
95123

96124
### Where is Javascript???
97125
See our [javascript library](http://github.com/swagger-api/swagger-js)--it's completely dynamic and doesn't require
@@ -116,17 +144,22 @@ There are different aspects of customizing the code generator beyond just creati
116144
```
117145
$ ls -1 modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/
118146
AndroidClientCodegen.java
147+
AsyncScalaClientCodegen.java
148+
CSharpClientCodegen.java
119149
JavaClientCodegen.java
120150
JaxRSServerCodegen.java
121151
NodeJSServerCodegen.java
122152
ObjcClientCodegen.java
123153
PhpClientCodegen.java
124154
PythonClientCodegen.java
155+
RubyClientCodegen.java
125156
ScalaClientCodegen.java
126157
ScalatraServerCodegen.java
158+
SpringMVCServerCodegen.java
127159
StaticDocCodegen.java
128160
StaticHtmlGenerator.java
129161
SwaggerGenerator.java
162+
SwaggerYamlGenerator.java
130163
TizenClientCodegen.java
131164
```
132165

@@ -149,7 +182,7 @@ public class MyObjcCodegen extends ObjcClientCodegen {
149182
and specify the `classname` when running the generator:
150183

151184
```
152-
-i com.mycompany.swagger.codegen.MyObjcCodegen
185+
-l com.mycompany.swagger.codegen.MyObjcCodegen
153186
```
154187

155188
Your subclass will now be loaded and overrides the `PREFIX` value in the superclass.
@@ -189,7 +222,7 @@ You can also use the codegen to generate a server for a couple different framewo
189222

190223
### node.js
191224
```
192-
java -jar modules/swagger-codegen-distribution/target/swagger-codegen-distribution-2.1.2-M1.jar \
225+
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
193226
-i http://petstore.swagger.io/v2/swagger.json \
194227
-l nodejs \
195228
-o samples/server/petstore/nodejs
@@ -201,7 +234,7 @@ java -jar modules/swagger-codegen-distribution/target/swagger-codegen-distributi
201234

202235
### scala scalatra
203236
```
204-
java -jar modules/swagger-codegen-distribution/target/swagger-codegen-distribution-2.1.2-M1.jar \
237+
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
205238
-i http://petstore.swagger.io/v2/swagger.json \
206239
-l scalatra \
207240
-o samples/server/petstore/scalatra
@@ -210,12 +243,20 @@ java -jar modules/swagger-codegen-distribution/target/swagger-codegen-distributi
210243
### java jax-rs
211244

212245
```
213-
java -jar modules/swagger-codegen-distribution/target/swagger-codegen-distribution-2.1.2-M1.jar \
246+
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
214247
-i http://petstore.swagger.io/v2/swagger.json \
215248
-l jaxrs \
216249
-o samples/server/petstore/jaxrs
217250
```
218251

252+
### java spring-mvc
253+
254+
```
255+
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
256+
-i http://petstore.swagger.io/v2/swagger.json \
257+
-l spring-mvc \
258+
-o samples/server/petstore/spring-mvc
259+
```
219260
### To build the codegen library
220261

221262
This will create the swagger-codegen library from source.

bin/all-petstore.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ fi
1919

2020
cd $APP_DIR
2121
./bin/android-java-petstore.sh
22+
./bin/csharp-petstore.sh
2223
./bin/dynamic-html.sh
23-
./bin/html.sh
24+
./bin/html-petstore.sh
2425
./bin/jaxrs-petstore-server.sh
25-
./bin/java-petstore-filemap.sh
2626
./bin/java-petstore.sh
2727
./bin/php-petstore.sh
2828
./bin/python-petstore.sh
29+
./bin/ruby-petstore.sh
2930
./bin/objc-petstore.sh
3031
./bin/scala-petstore.sh
32+
./bin/spring-mvc-petstore-server.sh
3133
./bin/tizen-petstore.sh

bin/android-java-petstore.sh

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@ if [ ! -d "${APP_DIR}" ]; then
1717
APP_DIR=`cd "${APP_DIR}"; pwd`
1818
fi
1919

20-
root=./modules/swagger-codegen-distribution/pom.xml
21-
22-
# gets version of swagger-codegen
23-
version=$(sed '/<project>/,/<\/project>/d;/<version>/!d;s/ *<\/\?version> *//g' $root | sed -n '2p' | sed -e 's,.*<version>\([^<]*\)</version>.*,\1,g')
24-
25-
executable="./modules/swagger-codegen-distribution/target/swagger-codegen-distribution-$version.jar"
20+
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
2621

2722
if [ ! -f "$executable" ]
2823
then
@@ -31,6 +26,6 @@ fi
3126

3227
# if you've executed sbt assembly previously it will use that instead.
3328
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
34-
ags="$@ -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l android -o samples/client/petstore/android-java"
29+
ags="$@ generate -t modules/swagger-codegen/src/main/resources/android-java -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l android -o samples/client/petstore/android-java"
3530

3631
java $JAVA_OPTS -jar $executable $ags

bin/android-java-wordnik-api.sh

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@ if [ ! -d "${APP_DIR}" ]; then
1717
APP_DIR=`cd "${APP_DIR}"; pwd`
1818
fi
1919

20-
root=./modules/swagger-codegen-distribution/pom.xml
21-
22-
# gets version of swagger-codegen
23-
version=$(sed '/<project>/,/<\/project>/d;/<version>/!d;s/ *<\/\?version> *//g' $root | sed -n '2p' | sed -e 's,.*<version>\([^<]*\)</version>.*,\1,g')
24-
25-
executable="./modules/swagger-codegen-distribution/target/swagger-codegen-distribution-$version.jar"
20+
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
2621

2722
if [ ! -f "$executable" ]
2823
then
@@ -31,6 +26,6 @@ fi
3126

3227
# if you've executed sbt assembly previously it will use that instead.
3328
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
34-
ags="$@ -i modules/swagger-codegen/src/test/resources/2_0/wordnik.json -l android -o samples/client/wordnik/android-java"
29+
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/wordnik.json -l android -o samples/client/wordnik/android-java"
3530

3631
java $JAVA_OPTS -jar $executable $ags

bin/csharp-petstore.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/sh
2+
3+
SCRIPT="$0"
4+
5+
while [ -h "$SCRIPT" ] ; do
6+
ls=`ls -ld "$SCRIPT"`
7+
link=`expr "$ls" : '.*-> \(.*\)$'`
8+
if expr "$link" : '/.*' > /dev/null; then
9+
SCRIPT="$link"
10+
else
11+
SCRIPT=`dirname "$SCRIPT"`/"$link"
12+
fi
13+
done
14+
15+
if [ ! -d "${APP_DIR}" ]; then
16+
APP_DIR=`dirname "$SCRIPT"`/..
17+
APP_DIR=`cd "${APP_DIR}"; pwd`
18+
fi
19+
20+
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
21+
22+
if [ ! -f "$executable" ]
23+
then
24+
mvn clean package
25+
fi
26+
27+
# if you've executed sbt assembly previously it will use that instead.
28+
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
29+
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l csharp -o samples/client/petstore/csharp"
30+
31+
java $JAVA_OPTS -jar $executable $ags

bin/dynamic-html.sh

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@ if [ ! -d "${APP_DIR}" ]; then
1717
APP_DIR=`cd "${APP_DIR}"; pwd`
1818
fi
1919

20-
root=./modules/swagger-codegen-distribution/pom.xml
21-
22-
# gets version of swagger-codegen
23-
version=$(sed '/<project>/,/<\/project>/d;/<version>/!d;s/ *<\/\?version> *//g' $root | sed -n '2p' | sed -e 's,.*<version>\([^<]*\)</version>.*,\1,g')
24-
25-
executable="./modules/swagger-codegen-distribution/target/swagger-codegen-distribution-$version.jar"
20+
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
2621

2722
if [ ! -f "$executable" ]
2823
then
@@ -31,6 +26,6 @@ fi
3126

3227
# if you've executed sbt assembly previously it will use that instead.
3328
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
34-
ags="$@ -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l dynamic-html -o samples/dynamic-html"
29+
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l dynamic-html -o samples/dynamic-html"
3530

3631
java $JAVA_OPTS -jar $executable $ags

bin/html-petstore.sh

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@ if [ ! -d "${APP_DIR}" ]; then
1717
APP_DIR=`cd "${APP_DIR}"; pwd`
1818
fi
1919

20-
root=./modules/swagger-codegen-distribution/pom.xml
21-
22-
# gets version of swagger-codegen
23-
version=$(sed '/<project>/,/<\/project>/d;/<version>/!d;s/ *<\/\?version> *//g' $root | sed -n '2p' | sed -e 's,.*<version>\([^<]*\)</version>.*,\1,g')
24-
25-
executable="./modules/swagger-codegen-distribution/target/swagger-codegen-distribution-$version.jar"
20+
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
2621

2722
if [ ! -f "$executable" ]
2823
then
@@ -31,6 +26,6 @@ fi
3126

3227
# if you've executed sbt assembly previously it will use that instead.
3328
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
34-
ags="$@ -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l html -o samples/html"
29+
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l html -o samples/html"
3530

3631
java $JAVA_OPTS -jar $executable $ags

bin/java-petstore.sh

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@ if [ ! -d "${APP_DIR}" ]; then
1717
APP_DIR=`cd "${APP_DIR}"; pwd`
1818
fi
1919

20-
root=./modules/swagger-codegen-distribution/pom.xml
21-
22-
# gets version of swagger-codegen
23-
version=$(sed '/<project>/,/<\/project>/d;/<version>/!d;s/ *<\/\?version> *//g' $root | sed -n '2p' | sed -e 's,.*<version>\([^<]*\)</version>.*,\1,g')
24-
25-
executable="./modules/swagger-codegen-distribution/target/swagger-codegen-distribution-$version.jar"
20+
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
2621

2722
if [ ! -f "$executable" ]
2823
then
@@ -31,6 +26,6 @@ fi
3126

3227
# if you've executed sbt assembly previously it will use that instead.
3328
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
34-
ags="$@ -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l java -o samples/client/petstore/java"
29+
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l java -o samples/client/petstore/java"
3530

3631
java $JAVA_OPTS -jar $executable $ags

bin/java-wordnik-api.sh

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@ if [ ! -d "${APP_DIR}" ]; then
1717
APP_DIR=`cd "${APP_DIR}"; pwd`
1818
fi
1919

20-
root=./modules/swagger-codegen-distribution/pom.xml
21-
22-
# gets version of swagger-codegen
23-
version=$(sed '/<project>/,/<\/project>/d;/<version>/!d;s/ *<\/\?version> *//g' $root | sed -n '2p' | sed -e 's,.*<version>\([^<]*\)</version>.*,\1,g')
24-
25-
executable="./modules/swagger-codegen-distribution/target/swagger-codegen-distribution-$version.jar"
20+
executable="./modules/swagger-codegen-cli/target/swagger-codegen-cli.jar"
2621

2722
if [ ! -f "$executable" ]
2823
then
@@ -31,6 +26,6 @@ fi
3126

3227
# if you've executed sbt assembly previously it will use that instead.
3328
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
34-
ags="$@ -i modules/swagger-codegen/src/test/resources/2_0/wordnik.json -l java -o samples/client/wordnik/java"
29+
ags="$@ generate -i modules/swagger-codegen/src/test/resources/2_0/wordnik.json -l java -o samples/client/wordnik/java"
3530

3631
java $JAVA_OPTS -jar $executable $ags

0 commit comments

Comments
 (0)