La notazione è nota come modelli di percorso URI e descritta in documentation.
Si definisce una nuova variabile di modello dichiarandola tra parentesi {}
. L'ambiente JX-RS associa il segmento di percorso corrispondente dall'URI richiesto a un parametro del metodo di gestione @PathParam
dichiarato.
Dalla documentazione
modelli di percorso URI sono URI con variabili integrate all'interno della sintassi URI . Queste variabili vengono sostituite in fase di esecuzione in modo che una risorsa risponda a una richiesta basata sull'URI sostituito. Le variabili sono contrassegnate da parentesi graffe ({
e }
). Ad esempio, guardare il seguente @Path
annotazione:
@Path("https://stackoverflow.com/users/{username}")
In questo tipo di esempio, un utente viene richiesto di digitare il proprio nome, e quindi un servizio Web JAX-RS configurato per rispondere alle richieste di questo modello di percorso URI risponde. Ad esempio, se l'utente digita il nome utente “Galileo”, il servizio Web risponde al seguente URL:
http://example.com/users/Galileo
per ottenere il valore del nome utente, l'annotazione @PathParam
può essere usato sulla metodo parametro di un metodo di richiesta, come mostrato nel seguente codice esempio:
@Path("https://stackoverflow.com/users/{username}")
public class UserResource {
@GET
@Produces("text/xml")
public String getUser(@PathParam("username") String userName) {
...
}
}
la documentazione passa poi a specificare la sintassi per la notazione
Per impostazione predefinita, la variabile URI deve corrispondere l'espressione regolare "[^ /] +?". Questa variabile può essere personalizzato specificando un diverso espressione regolare dopo il nome della variabile. Ad esempio, se un nome utente deve consistere solo di lettere minuscole e maiuscole alfanumerici caratteri, sostituire l'espressione regolare predefinito nella variabile definizione:.
@Path("users/{username: [a-zA-Z][a-zA-Z_0-9]}")
In questo esempio la variabile nome utente selezionerà solo i nomi degli utenti che iniziano con una lettera maiuscola o minuscola e zero o più caratteri alfanumerici e il carattere di sottolineatura Se un nome utente d o non corrisponde a quel modello, una risposta 404 (non trovata) verrà inviata al client .
Così il vostro esempio
@Path("{image:image/.*}")
definisce una variabile di modello URI chiamato image
che contiene un segmento corrispondente al regex
image/.*
L'ambiente JAX-RS sarà quindi utilizzare il metodo annotato per le richieste agli URI corrispondenti a
http://somehost.com/context-path/image/[anything]
Presumibilmente, il metodo dovrebbe avere un parametro
@Path("{image:image/.*}")
public Response handle(@PathParam("image") String path) { /* handling */ }
e path
avrebbe un valore "image/[anything]"
.
è solo una parte della regex utilizzata ... –
@JunedAhsan Non è, almeno non il prefisso 'image:'. –