Skip to content

Commit a982a01

Browse files
committed
Add support for adding Markdown descriptions to models in OpenAPI spec
1 parent 281c92c commit a982a01

19 files changed

+227
-197
lines changed

gemma-web/src/main/java/ubic/gemma/web/services/rest/AnalysisResultSetsWebService.java

+3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import io.swagger.v3.oas.annotations.Operation;
2222
import io.swagger.v3.oas.annotations.Parameter;
2323
import io.swagger.v3.oas.annotations.enums.Explode;
24+
import io.swagger.v3.oas.annotations.extensions.Extension;
25+
import io.swagger.v3.oas.annotations.extensions.ExtensionProperty;
2426
import io.swagger.v3.oas.annotations.media.Content;
2527
import io.swagger.v3.oas.annotations.media.ExampleObject;
2628
import io.swagger.v3.oas.annotations.media.Schema;
@@ -86,6 +88,7 @@ public class AnalysisResultSetsWebService {
8688
public PaginatedResponseDataObject<DifferentialExpressionAnalysisResultSetValueObject> getResultSets(
8789
@Parameter(schema = @Schema(implementation = DatasetArrayArg.class), explode = Explode.FALSE) @QueryParam("datasets") DatasetArrayArg datasets,
8890
@Parameter(schema = @Schema(implementation = DatabaseEntryArrayArg.class), explode = Explode.FALSE) @QueryParam("databaseEntries") DatabaseEntryArrayArg databaseEntries,
91+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "expressionAnalysisResultSetService") }) })
8992
@QueryParam("filter") @DefaultValue("") FilterArg filters,
9093
@QueryParam("offset") @DefaultValue("0") OffsetArg offset,
9194
@QueryParam("limit") @DefaultValue("20") LimitArg limit,

gemma-web/src/main/java/ubic/gemma/web/services/rest/AnnotationsWebService.java

+6
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import io.swagger.v3.oas.annotations.Operation;
2323
import io.swagger.v3.oas.annotations.Parameter;
2424
import io.swagger.v3.oas.annotations.enums.Explode;
25+
import io.swagger.v3.oas.annotations.extensions.Extension;
26+
import io.swagger.v3.oas.annotations.extensions.ExtensionProperty;
2527
import io.swagger.v3.oas.annotations.media.Content;
2628
import io.swagger.v3.oas.annotations.media.Schema;
2729
import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -155,6 +157,7 @@ public ResponseDataObject<List<AnnotationSearchResultValueObject>> searchAnnotat
155157
})
156158
public PaginatedResponseDataObject<ExpressionExperimentValueObject> searchDatasets( // Params:
157159
@Parameter(schema = @Schema(implementation = StringArrayArg.class), explode = Explode.FALSE) @QueryParam("query") @DefaultValue("") StringArrayArg query,
160+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "expressionExperimentService") }) })
158161
@QueryParam("filter") @DefaultValue("") FilterArg filterArg, // Optional, default null
159162
@QueryParam("offset") @DefaultValue("0") OffsetArg offset, // Optional, default 0
160163
@QueryParam("limit") @DefaultValue("20") LimitArg limit, // Optional, default 20
@@ -206,6 +209,7 @@ public PaginatedResponseDataObject<ExpressionExperimentValueObject> searchDatase
206209
}, deprecated = true)
207210
public PaginatedResponseDataObject<ExpressionExperimentValueObject> searchDatasetsByQueryInPath( // Params:
208211
@PathParam("query") @DefaultValue("") StringArrayArg query, // Required
212+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "expressionExperimentService") }) })
209213
@QueryParam("filter") @DefaultValue("") FilterArg filterArg, // Optional, default null
210214
@QueryParam("offset") @DefaultValue("0") OffsetArg offset, // Optional, default 0
211215
@QueryParam("limit") @DefaultValue("20") LimitArg limit, // Optional, default 20
@@ -228,6 +232,7 @@ public PaginatedResponseDataObject<ExpressionExperimentValueObject> searchDatase
228232
public PaginatedResponseDataObject<ExpressionExperimentValueObject> searchTaxonDatasets( // Params:
229233
@PathParam("taxon") TaxonArg<?> taxonArg, // Required
230234
@Parameter(schema = @Schema(implementation = StringArrayArg.class), explode = Explode.FALSE) @QueryParam("query") @DefaultValue("") StringArrayArg query,
235+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "expressionExperimentService") }) })
231236
@QueryParam("filter") @DefaultValue("") FilterArg filter, // Optional, default null
232237
@QueryParam("offset") @DefaultValue("0") OffsetArg offset, // Optional, default 0
233238
@QueryParam("limit") @DefaultValue("20") LimitArg limit, // Optional, default 20
@@ -273,6 +278,7 @@ public PaginatedResponseDataObject<ExpressionExperimentValueObject> searchTaxonD
273278
public PaginatedResponseDataObject<ExpressionExperimentValueObject> searchTaxonDatasetsByQueryInPath( // Params:
274279
@PathParam("taxon") TaxonArg<?> taxonArg, // Required
275280
@PathParam("query") @DefaultValue("") StringArrayArg query, // Required
281+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "expressionExperimentService") }) })
276282
@QueryParam("filter") @DefaultValue("") FilterArg filter, // Optional, default null
277283
@QueryParam("offset") @DefaultValue("0") OffsetArg offset, // Optional, default 0
278284
@QueryParam("limit") @DefaultValue("20") LimitArg limit, // Optional, default 20

gemma-web/src/main/java/ubic/gemma/web/services/rest/DatasetsWebService.java

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package ubic.gemma.web.services.rest;
1616

1717
import io.swagger.v3.oas.annotations.Operation;
18+
import io.swagger.v3.oas.annotations.extensions.Extension;
19+
import io.swagger.v3.oas.annotations.extensions.ExtensionProperty;
1820
import io.swagger.v3.oas.annotations.media.Content;
1921
import io.swagger.v3.oas.annotations.media.Schema;
2022
import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -128,6 +130,7 @@ public DatasetsWebService( ExpressionExperimentService expressionExperimentServi
128130
@Produces(MediaType.APPLICATION_JSON)
129131
@Operation(summary = "Retrieve all datasets")
130132
public PaginatedResponseDataObject<ExpressionExperimentValueObject> getDatasets( // Params:
133+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "expressionExperimentService") }) })
131134
@QueryParam("filter") @DefaultValue("") FilterArg filter, // Optional, default null
132135
@QueryParam("offset") @DefaultValue("0") OffsetArg offset, // Optional, default 0
133136
@QueryParam("limit") @DefaultValue("20") LimitArg limit, // Optional, default 20
@@ -159,6 +162,7 @@ public PaginatedResponseDataObject<ExpressionExperimentValueObject> getDatasets(
159162
@Operation(summary = "Retrieve datasets by their identifiers")
160163
public PaginatedResponseDataObject<ExpressionExperimentValueObject> getDatasetsByIds( // Params:
161164
@PathParam("dataset") DatasetArrayArg datasetsArg, // Optional
165+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "expressionExperimentService") }) })
162166
@QueryParam("filter") @DefaultValue("") FilterArg filter, // Optional, default null
163167
@QueryParam("offset") @DefaultValue("0") OffsetArg offset, // Optional, default 0
164168
@QueryParam("limit") @DefaultValue("20") LimitArg limit, // Optional, default 20

gemma-web/src/main/java/ubic/gemma/web/services/rest/PlatformsWebService.java

+4
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
package ubic.gemma.web.services.rest;
1616

1717
import io.swagger.v3.oas.annotations.Operation;
18+
import io.swagger.v3.oas.annotations.extensions.Extension;
19+
import io.swagger.v3.oas.annotations.extensions.ExtensionProperty;
1820
import io.swagger.v3.oas.annotations.media.Content;
1921
import io.swagger.v3.oas.annotations.media.Schema;
2022
import io.swagger.v3.oas.annotations.responses.ApiResponse;
@@ -88,6 +90,7 @@ public PlatformsWebService( GeneService geneService, ArrayDesignService arrayDes
8890
@Produces(MediaType.APPLICATION_JSON)
8991
@Operation(summary = "Retrieve all platforms")
9092
public PaginatedResponseDataObject<ArrayDesignValueObject> getPlatforms( // Params:
93+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "arrayDesignService") }) })
9194
@QueryParam("filter") @DefaultValue("") FilterArg filter, // Optional, default null
9295
@QueryParam("offset") @DefaultValue("0") OffsetArg offset, // Optional, default 0
9396
@QueryParam("limit") @DefaultValue("20") LimitArg limit, // Optional, default 20
@@ -115,6 +118,7 @@ public PaginatedResponseDataObject<ArrayDesignValueObject> getPlatforms( // Para
115118
@Operation(summary = "Retrieve all platforms matching a set of platform identifiers")
116119
public PaginatedResponseDataObject<ArrayDesignValueObject> getPlatformsByIds( // Params:
117120
@PathParam("platform") PlatformArrayArg datasetsArg, // Optional
121+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "arrayDesignService") }) })
118122
@QueryParam("filter") @DefaultValue("") FilterArg filter, // Optional, default null
119123
@QueryParam("offset") @DefaultValue("0") OffsetArg offset, // Optional, default 0
120124
@QueryParam("limit") @DefaultValue("20") LimitArg limit, // Optional, default 20

gemma-web/src/main/java/ubic/gemma/web/services/rest/SearchWebService.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import ubic.gemma.model.genome.sequenceAnalysis.BioSequenceValueObject;
3030
import ubic.gemma.persistence.service.expression.arrayDesign.ArrayDesignService;
3131
import ubic.gemma.persistence.service.genome.taxon.TaxonService;
32-
import ubic.gemma.web.services.rest.swagger.resolvers.SearchResultTypeAllowableValuesModelResolver;
3332
import ubic.gemma.web.services.rest.util.ResponseDataObject;
3433
import ubic.gemma.web.services.rest.util.args.LimitArg;
3534
import ubic.gemma.web.services.rest.util.args.PlatformArg;
@@ -75,7 +74,7 @@ public class SearchWebService {
7574
/**
7675
* Search everything subject to taxon and platform constraints.
7776
* <p>
78-
* Naming the schema in for the result types is necessary so that it can be resolved in {@link SearchResultTypeAllowableValuesModelResolver}.
77+
* Naming the schema in for the result types is necessary so that it can be resolved in {@link ubic.gemma.web.services.rest.swagger.resolver.CustomModelResolver}.
7978
*/
8079
@GET
8180
@Produces(MediaType.APPLICATION_JSON_VALUE)

gemma-web/src/main/java/ubic/gemma/web/services/rest/TaxaWebService.java

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import io.swagger.v3.oas.annotations.Operation;
1818
import io.swagger.v3.oas.annotations.Parameter;
1919
import io.swagger.v3.oas.annotations.enums.Explode;
20+
import io.swagger.v3.oas.annotations.extensions.Extension;
21+
import io.swagger.v3.oas.annotations.extensions.ExtensionProperty;
2022
import io.swagger.v3.oas.annotations.media.Schema;
2123
import org.apache.commons.logging.Log;
2224
import org.apache.commons.logging.LogFactory;
@@ -225,6 +227,7 @@ public ResponseDataObject<List<PhysicalLocationValueObject>> getGeneLocationsInT
225227
@Operation(summary = "Retrieve the datasets for a given taxon")
226228
public PaginatedResponseDataObject<ExpressionExperimentValueObject> getTaxonDatasets( // Params:
227229
@PathParam("taxon") TaxonArg<?> taxonArg, // Required
230+
@Schema(extensions = { @Extension(name = "gemma", properties = { @ExtensionProperty(name = "filteringService", value = "expressionExperimentService") }) })
228231
@QueryParam("filter") @DefaultValue("") FilterArg filter, // Optional, default null
229232
@QueryParam("offset") @DefaultValue("0") OffsetArg offset, // Optional, default 0
230233
@QueryParam("limit") @DefaultValue("20") LimitArg limit, // Optional, default 20

gemma-web/src/main/java/ubic/gemma/web/services/rest/swagger/CustomModelConverter.java

-15
This file was deleted.

gemma-web/src/main/java/ubic/gemma/web/services/rest/swagger/CustomModelConvertersRegistrationListener.java

-51
This file was deleted.

0 commit comments

Comments
 (0)