J'utilise des bibliothèques Springfox
pour générer de la documentation pour REST et l'afficher dans Swagger UI. J'ai suivi les instructions dans documentation Springfox .
J'ai un contrôleur, qui utilise les paramètres de la chaîne de requête et la méthode est mappée comme suit:
@ApiOperation(value = "")
@RequestMapping(method = GET, value = "/customcollection/{id}/data")
public Iterable<CustomeType> getData(@ApiParam(value = "The identifier of the time series.")
@PathVariable String id,
@ApiParam(name = "startDate", value = "start date", defaultValue = "")
@RequestParam("startDate") String startDate,
@ApiParam(name = "endDate", value = "end date", defaultValue = "")
@RequestParam("endDate") String endDate)
Le mappeur résultant dans swagger-ui s'affiche alors sous la forme:
GET /customcollection/{id}/data{?startDate,endDate}
Les paramètres s'affichent correctement dans l'interface utilisateur:
Mais lorsque je clique sur Try it Out, l'URL de la demande est incorrecte:
http: // localhost: 8080/customcollection/1/data {? startDate, endDate}? startDate = 1 & endDate = 2
Comment peut-il être corrigé?
Cela a été causé par la ligne
enableUrlTemplating(true)
dans la configuration Docket
que j'ai copiée à partir de l'exemple et oublié de supprimer.
Après avoir supprimé cette ligne, tout fonctionne comme prévu.