OpenAPITools / openapi-generator

OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
https://openapi-generator.tech
Apache License 2.0
21.35k stars 6.46k forks source link

Adjust the names (script, sample folder, generator) to lang option #138

Open ackintosh opened 6 years ago

ackintosh commented 6 years ago
Description

e.g. php:

There is some non-prefixed (with php-) script/folder.

lang script (./bin/) sample folder generator
php php-petstore.sh php PhpClientCodegen.java
php-lumen lumen-petstore-server.sh lumen PhpLumenServerCodegen.java
php-slim slim-petstore-server.sh slim PhpSlimServerCodegen.java
php-silex php-silex-petstore-server.sh php-silex PhpSilexServerCodegen.java
php-symfony php-symfony-petstore.sh php-symfony PhpSymfonyServerCodegen.java
php-ze-ph ze-ph-petstore-server.sh ze-ph PhpZendExpressivePathHandlerServerCodegen.java
openapi-generator version

current master

Suggest a fix/enhancement

It is better to prefix the files with php- to avoid users/contributors be confused. (e.g slim-petstore-server.sh => php-slim-petstore-server.sh in the example above)

jmini commented 6 years ago

This is a good idea. Let me know if you need help.

ackintosh commented 6 years ago

CLIENT generators

Marked with [!] the file/folder should be renamed.

lang script (./bin/) sample folder generator
ada ada-petstore.sh ada AdaCodegen.java
android android-petstore-***.sh android AndroidClientCodegen.java
apex apex-petstore.sh apex ApexClientCodegen.java
bash bash-petstore.sh bash BashClientCodegen.java
clojure clojure-petstore.sh clojure ClojureClientCodegen.java
cpp-qt5 [!] qt5-petstore.sh [!] qt5cpp CppQt5ClientCodegen.java
cpp-restsdk [!] cpprest-petstore.sh [!] cpprest [!] CppRestClientCodegen.java
cpp-tizen [!] tizen-petstore.sh [!] tizen CppTizenClientCodegen.java
csharp csharp-petstore.sh csharp CSharpClientCodegen.java
csharp-dotnet2 csharp-dotnet2-petstore.sh csharp-dotnet2 CSharpDotNet2ClientCodegen.java
dart dart-petstore.sh dart DartClientCodegen.java
eiffel eiffel-petstore.sh eiffel EiffelClientCodegen.java
elixir elixir-petstore.sh elixir ElixirClientCodegen.java
elm elm-petstore.sh elm ElmClientCodegen.java
erlang-client erlang-petstore-client.sh erlang-client ErlangClientCodegen.java
flash flash-petstore.sh flash FlashClientCodegen.java
go go-petstore.sh go GoClientCodegen.java
groovy groovy-petstore.sh groovy GroovyClientCodegen.java
haskell-http-client haskell-http-client-petstore.sh haskell-http-client HaskellHttpClientCodegen.java
java java-petstore-***.sh java JavaClientCodegen.java
javascript javascript-petstore.sh javascript JavascriptClientCodegen.java
javascript-closure-angular javascript-closure-angular.sh javascript-closure-angular JavascriptClosureAngularClientCodegen.java
jaxrs-cxf-client jaxrs-cxf-client-petstore.sh jaxrs-cxf-client JavascriptClosureAngularClientCodegen.java
jmeter jmeter-petstore.sh jmeter [!] JMeterCodegen.java
kotlin kotlin-client-petstore.sh kotlin KotlinClientCodegen.java
lua lua-petstore.sh lua LuaClientCodegen.java
objc objc-petstore.sh objc ObjcClientCodegen.java
perl perl-petstore.sh perl PerlClientCodegen.java
php php-petstore.sh php PhpClientCodegen.java
powershell powershell-petstore.sh powershell PowerShellClientCodegen.java
python python-petstore.sh python PythonClientCodegen.java
r r-petstore.sh R RClientCodegen.java
ruby ruby-petstore.sh ruby RubyClientCodegen.java
rust rust-petstore.sh rust RustClientCodegen.java
scala-akka [!] akka-scala-petstore.sh [!] akka-scala ScalaAkkaClientCodegen.java
scala-gatling scala-gatling-petstore.sh scala-gatling ScalaGatlingCodegen.java
scala-httpclient [!] scala-petstore.sh [!] scala ScalaHttpClientCodegen.java
scalaz scalaz-petstore.sh scalaz ScalazClientCodegen.java
swift2-deprecated swift-petstore.sh swift SwiftClientCodegen.java
swift3 swift3-petstore.sh swift3 Swift3Codegen.java
swift4 swift4-petstore.sh swift4 Swift4Codegen.java
typescript-angular typescript-angular-***.sh typescript-angular-*** TypeScriptAngularClientCodegen.java
typescript-angularjs typescript-angularjs-petstore.sh typescript-angularjs TypeScriptAngularJsClientCodegen.java
typescript-aurelia typescript-aurelia-petstore.sh typescript-aurelia TypeScriptAureliaClientCodegen.java
typescript-fetch typescript-fetch-petstore.sh typescript-fetch TypeScriptFetchClientCodegen.java
typescript-inversify typescript-inversify-petstore.sh typescript-inversify TypeScriptInversifyClientCodegen.java
typescript-jquery typescript-jquery-petstore.sh typescript-jquery TypeScriptJqueryClientCodegen.java
typescript-node typescript-node-petstore.sh typescript-node TypeScriptNodeClientCodegen.java
ackintosh commented 6 years ago

I noticed that template folder should be adjust as well.

ackintosh commented 6 years ago

Naming rules 📝

Here is a simple and unified rules I think. 💭

1. generator

...... / languages / {Language}{Framework}{Client|Server}Codegen.java

e.g. CppPistacheServerCodegen.java PhpClientCodegen.java

2. template dir

Template dir should be the lower-chain-case of generator name.

...... / resources / {language}-{framework}-{client|server}

e.g. cpp-pistache-server php-client

3. script

bin / {language}-{framework}-{client|server}-petstore.sh

e.g. cpp-pistache-server-petstore.sh php-client-petstore.sh

4. sample folder

samples / {client|server} / {petstore|petstore-security-test} / {language}-{framework}

e.g. samples/server/petstore/cpp-pistache samples/client/petstore/php