Skip to content

Commit 514fa67

Browse files
authored
Fix #117 (#120)
Register String schema for String payloads.
1 parent b30891f commit 514fa67

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

springwolf-core/src/main/java/io/github/stavshamir/springwolf/schemas/DefaultSchemasService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import io.swagger.v3.core.converter.ModelConverters;
1313
import io.swagger.v3.oas.models.media.MapSchema;
1414
import io.swagger.v3.oas.models.media.Schema;
15+
import io.swagger.v3.oas.models.media.StringSchema;
1516
import lombok.extern.slf4j.Slf4j;
1617
import org.springframework.stereotype.Service;
1718

@@ -64,6 +65,11 @@ public String register(Class<?> type) {
6465
Map<String, Schema> schemas = converter.readAll(type);
6566
this.definitions.putAll(schemas);
6667

68+
if (schemas.size() == 0 && type.equals(String.class)) {
69+
this.definitions.put("String", new StringSchema());
70+
return "String";
71+
}
72+
6773
if (schemas.size() == 1) {
6874
return new ArrayList<>(schemas.keySet()).get(0);
6975
}

springwolf-core/src/test/java/io/github/stavshamir/springwolf/schemas/DefaultSchemasServiceTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import java.util.Optional;
1818

1919
import static org.assertj.core.api.Assertions.assertThat;
20+
import static org.junit.Assert.assertNotNull;
2021

2122
public class DefaultSchemasServiceTest {
2223

@@ -29,6 +30,16 @@ public class DefaultSchemasServiceTest {
2930
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
3031
}
3132

33+
@Test
34+
public void string() throws IOException, JSONException {
35+
String modelName = schemasService.register(String.class);
36+
37+
assertThat(modelName)
38+
.isEqualTo("String");
39+
40+
assertNotNull(schemasService.getDefinitions().get(modelName));
41+
}
42+
3243
@Test
3344
public void simpleObject() throws IOException, JSONException {
3445
String modelName = schemasService.register(SimpleFoo.class);

0 commit comments

Comments
 (0)