From eb2c7708cbc3223de5e8568e770855559b234b1c Mon Sep 17 00:00:00 2001 From: 11356176 Date: Thu, 31 Dec 2015 01:07:10 +0000 Subject: [PATCH] Issue 1631 Valid yml definition generates API error in node js server --- .../languages/NodeJSServerCodegen.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java index 914c602f86b..75581e6a06d 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NodeJSServerCodegen.java @@ -1,14 +1,21 @@ package io.swagger.codegen.languages; +import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.module.SimpleModule; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; + import io.swagger.codegen.*; import io.swagger.models.Swagger; import io.swagger.util.Yaml; import java.io.File; +import java.io.IOException; +import java.math.BigDecimal; import java.util.*; import java.util.Map.Entry; @@ -242,7 +249,15 @@ public class NodeJSServerCodegen extends DefaultCodegen implements CodegenConfig Swagger swagger = (Swagger)objs.get("swagger"); if(swagger != null) { try { - objs.put("swagger-yaml", Yaml.mapper().writeValueAsString(swagger)); + SimpleModule module = new SimpleModule(); + module.addSerializer(Double.class, new JsonSerializer() { + @Override + public void serialize(Double val, JsonGenerator jgen, + SerializerProvider provider) throws IOException, JsonProcessingException { + jgen.writeNumber(new BigDecimal(val)); + } + }); + objs.put("swagger-yaml", Yaml.mapper().registerModule(module).writeValueAsString(swagger)); } catch (JsonProcessingException e) { e.printStackTrace(); } @@ -256,4 +271,4 @@ public class NodeJSServerCodegen extends DefaultCodegen implements CodegenConfig } return super.postProcessSupportingFileData(objs); } -} \ No newline at end of file +}