- * By default, this class will create a separate OpenAPI definition for each and every resource type; - * each with all HTTP interactions enabled. + * By default, this class will generate: + *
* To limit the output to a given set of resources and/or interactions, pass a set of semicolon-delimited * filter strings of the form {@code ResourceType1(interaction1,interaction2)}. - * + * * For example: *
* Patient(create,read,vread,history,search,update,delete);Contract(create,read,vread,history,search);RiskAssessment(read) @@ -1069,10 +1076,23 @@ private static void generateDefinition(Class> modelClass, JsonObjectBuilder de definition.add("required", requiredArray); } + if (Resource.class.isAssignableFrom(modelClass)) { + addExamples(modelClass, definition); + } + definitions.add(getSimpleNameWithEnclosingNames(modelClass), definition); } } + public static void addExamples(Class> modelClass, JsonObjectBuilder definition) throws IOException { + if (!Modifier.isAbstract(modelClass.getModifiers())) { + // Change this from "complete-mock" to "minimal" to reduce the size of the generated definition + Reader example = ExamplesUtil.resourceReader("json/ibm/complete-mock/" + modelClass.getSimpleName() + "-1.json"); + JsonReader jsonReader = Json.createReader(example); + definition.add("example", jsonReader.readObject()); + } + } + private static String getSimpleNameWithEnclosingNames(Class> modelClass) { StringBuilder fullName = new StringBuilder(modelClass.getSimpleName()); while (modelClass.isMemberClass()) { diff --git a/fhir-swagger-generator/src/main/java/com/ibm/fhir/swagger/generator/FHIRSwaggerGenerator.java b/fhir-swagger-generator/src/main/java/com/ibm/fhir/swagger/generator/FHIRSwaggerGenerator.java index 2c93d31e34f..75e5818bae0 100644 --- a/fhir-swagger-generator/src/main/java/com/ibm/fhir/swagger/generator/FHIRSwaggerGenerator.java +++ b/fhir-swagger-generator/src/main/java/com/ibm/fhir/swagger/generator/FHIRSwaggerGenerator.java @@ -855,6 +855,10 @@ private static void generateDefinition(Class> modelClass, JsonObjectBuilder de definition.add("required", requiredArray); } + if (Resource.class.isAssignableFrom(modelClass)) { + FHIROpenApiGenerator.addExamples(modelClass, definition); + } + definitions.add(getSimpleNameWithEnclosingNames(modelClass), definition); } }