[aspnet] Initial implementation of ASP.NET 5 server

Things to work on:

Gaps:

* Missing swagger definition functionality:
  - defaultResponse
  - examples
  - auth
  - consumes
  - produces
  - nickname
  - externalDocs
  - imports
  - security
  - schema
* Resolve allParams/hasMore issue with headerParams
* Create functional test project stub
* Resolve all issues with value type return values

In this commit:

* Initial cross-platform ASP.NET 5 API server
* Hook up swagger gen via Swashbuckle and xml comment
* Build script (*nix) in project root
* Dockerfile for container deployment
This commit is contained in:
Jim Schubert
2016-02-01 13:38:34 -05:00
parent cd1e9b0504
commit 455ba9d839
48 changed files with 3202 additions and 2 deletions

View File

@@ -0,0 +1,44 @@
package io.swagger.codegen.aspnet5;
import io.swagger.codegen.AbstractOptionsTest;
import io.swagger.codegen.CodegenConfig;
import io.swagger.codegen.languages.AspNet5ServerCodegen;
import io.swagger.codegen.languages.CSharpClientCodegen;
import io.swagger.codegen.options.AspNet5ServerOptionsProvider;
import io.swagger.codegen.options.CSharpClientOptionsProvider;
import mockit.Expectations;
import mockit.Tested;
public class AspNet5ServerOptionsTest extends AbstractOptionsTest {
@Tested
private AspNet5ServerCodegen serverCodegen;
public AspNet5ServerOptionsTest() {
super(new AspNet5ServerOptionsProvider());
}
@Override
protected CodegenConfig getCodegenConfig() {
return serverCodegen;
}
@SuppressWarnings("unused")
@Override
protected void setExpectations() {
new Expectations(serverCodegen) {{
serverCodegen.setPackageName(AspNet5ServerOptionsProvider.PACKAGE_NAME_VALUE);
times = 1;
serverCodegen.setPackageVersion(AspNet5ServerOptionsProvider.PACKAGE_VERSION_VALUE);
times = 1;
serverCodegen.setSourceFolder(AspNet5ServerOptionsProvider.SOURCE_FOLDER_VALUE);
times = 1;
serverCodegen.useDateTimeOffset(true);
times = 1;
serverCodegen.setUseCollection(false);
times = 1;
serverCodegen.setReturnICollection(false);
times = 1;
}};
}
}

View File

@@ -0,0 +1,35 @@
package io.swagger.codegen.options;
import com.google.common.collect.ImmutableMap;
import io.swagger.codegen.CodegenConstants;
import java.util.Map;
public class AspNet5ServerOptionsProvider implements OptionsProvider {
public static final String PACKAGE_NAME_VALUE = "swagger_server_aspnet5";
public static final String PACKAGE_VERSION_VALUE = "1.0.0-SNAPSHOT";
public static final String SOURCE_FOLDER_VALUE = "src_aspnet5";
@Override
public String getLanguage() {
return "aspnet5";
}
@Override
public Map<String, String> createOptions() {
ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<String, String>();
return builder.put(CodegenConstants.PACKAGE_NAME, PACKAGE_NAME_VALUE)
.put(CodegenConstants.PACKAGE_VERSION, PACKAGE_VERSION_VALUE)
.put(CodegenConstants.SOURCE_FOLDER, SOURCE_FOLDER_VALUE)
.put(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, "true")
.put(CodegenConstants.USE_DATETIME_OFFSET, "true")
.put(CodegenConstants.USE_COLLECTION, "false")
.put(CodegenConstants.RETURN_ICOLLECTION, "false")
.build();
}
@Override
public boolean isServer() {
return true;
}
}