2015-02-19 17 views
5

dire che ho un URL risorsa parametrizzata comeparametri Swagger (spray) percorso all'interno risorsa url

/customers/{CUSTOMER-ID}/ownedItems/{ITEM-ID} 

Come dovrei annotatate/dividere i miei percorsi a spruzzo (usando il plugin spray-spavalderia) per generare una documentazione che sarà riconoscere {CUSTOMER-ID} come parametro di percorso corretto?

Il mio problema è che l'annotazione @Api di livello superiore richiede un percorso ma nessun parametro, mentre l'@ApiOperation può essere annotato con parametri di percorso ma questi vengono aggiunti alla fine. In altre parole, se scrivo:

@Api(value = "/customers/{CUSTOMER-ID}") 

@ApiOperation(httpMethod = "GET") 
@ApiImplicitParams(Array(
new ApiImplicitParam(name = "ITEM-ID", required = true, dataType = "string", paramType = "path")) 

ottengo nell'interfaccia utente unica voce-ID come parametro verificabile, mentre il cliente-ID, pur essendo segnalato come in {}, è solo una stringa.

Mi piacerebbe avere qualcosa in cui entrambi sono parametri del percorso.

Qualche idea?

+0

Qualsiasi aggiornamento su questo? – vimal1083

+0

Non una risposta fino ad ora, nemmeno in PM. –

risposta

0

clienti è il punto di ingresso @Api, non i parametri del percorso. I parametri del percorso devono essere utilizzati solo in @ApiOperation come segue (con più campioni):

@Api(value = "/customers") 

@ApiOperation(value = "/{CUSTOMER-ID}/ownedItems/{ITEM-ID}", httpMethod = "GET") 
@ApiImplicitParams(Array(
    new ApiImplicitParam(name = "CUSTOMER-ID", required = true, dataType = "string", paramType = "path"), 
    new ApiImplicitParam(name = "ITEM-ID", required = true, dataType = "string", paramType = "path")) 

@ApiOperation(value = "/{CUSTOMER-ID}", httpMethod = "GET") 
@ApiImplicitParams(Array(
    new ApiImplicitParam(name = "CUSTOMER-ID", required = true, dataType = "string", paramType = "path")) 

@ApiOperation(value = "/", httpMethod = "POST")