As variáveis de substituição são usadas para transferir valores do URL de solicitação para modelos de composição armazenados em catálogos de imagem. As variáveis também podem ser usadas para transmitir o mesmo valor para diferentes locais em uma solicitação complexa.
$ *
*= *
varvalue*
var |
Nome da variável. |
value |
Valor ao qual a variável deve ser definida (string). |
Definições e referências de variáveis podem ocorrer na parte do query da solicitação, em catalog::Modifier
e em catalog::PostModifier
.
As variáveis são definidas como acima, semelhantes a outros comandos IS; o '$' à esquerda identifica o comando como uma definição de variável. As variáveis devem ser definidas antes de serem referenciadas.
O nome da variável var
não diferencia maiúsculas de minúsculas e pode consistir em qualquer combinação de letras ASCII, números, '-', '_' e '.'.
value
deve ser codificado em URL de passagem única para transmissão segura HTTP. A codificação do duplo é necessária se value
for retransmitido via HTTP. Esse é o caso quando value
é substituído em uma solicitação estrangeira aninhada ou no atributo href de um elemento SVG <image>
.
As referências de variáveis consistem no nome da variável delimitado por '$' à esquerda e à direita ($var$). As referências podem ocorrer em qualquer parte do valor de qualquer comando IS (isto é, entre '=' após o nome do comando e o '&' subsequente ou o fim da solicitação). As variáveis personalizadas não podem ser aplicadas aos comandos layer=
e effect=
. Várias variáveis são permitidas no mesmo valor de comando. O servidor substitui cada ocorrência de $ *
var*$
por value
.
As referências de variáveis não podem ser aninhadas. Nenhuma ocorrência de $ *
var*$
em value
é substituída.
Por exemplo, o fragmento de solicitação:
$var2=apple&$var1=my$var2$tree&text=$var1$
resolve para:
text=my$var2$tree
'$' não é um caractere reservado; pode ocorrer de outra forma na solicitação. Por exemplo, src=my$image$file.tif
é um comando válido (assumindo que existe uma entrada de catálogo ou um arquivo de imagem chamado my$image$file.tif
), enquanto wid=$number$
não é, porque wid
requer um argumento numérico.
$ *
As *$
varreferências podem ocorrer em qualquer lugar dentro das chaves de uma solicitação aninhada de Serviço de imagem ou Renderização de imagem, incluindo à esquerda de '?' separando o caminho do query. O servidor substitui essas referências por valores (do url ou de catalog::Modifier
do catálogo de imagens principal) antes de analisar e processar a solicitação aninhada.
Além disso, todas as definições $ *
var*=
do url ou catalog::Modifier
são encaminhadas para todas as solicitações aninhadas de Serviço de imagem e Renderização de imagem. Isso garante que todas as definições de variáveis estejam disponíveis para todos os modelos, independentemente do nível de aninhamento.
Independentemente do nível de aninhamento, somente a codificação HTTP de passagem única deve ser aplicada a valores variáveis que devem ser substituídos em qualquer lugar em solicitações aninhadas de Renderização de imagem ou de Serviço de imagem ou em suas strings catalog::Modifier
associadas.
$ *
as *$
varreferências que ocorrem em qualquer lugar dentro das chaves de uma solicitação externa incorporada são substituídas pelos valores de definição de variável correspondentes. Isso permite que solicitações externas incorporadas sejam colocadas em um modelo em um catálogo de imagens.
Normalmente, os valores de variáveis que devem ser substituídos em solicitações estrangeiras devem ser codificados em duplo, já que nenhuma recodificação é aplicada antes que o servidor tente transmitir o url externo final.
$ *
as *$
varreferências podem ocorrer em arquivos SVG em valores de atributo e em <text>
strings. O Serviço de imagem os substitui pelas definições correspondentes $ *
var*=
conhecidas no nível de aninhamento da solicitação no qual o arquivo SVG é especificado.
Qualquer valor de variável que deva ser substituído em um valor de atributo href
deve ser codificado em URL de duplo; todos os outros devem ser codificados individualmente.
O object
especificado no caminho da solicitação é atribuído à variável predefinida *
$object*
. ' $ *
object*$
' pode ser colocado em qualquer local da solicitação, no modelo referenciado pela solicitação ou em uma solicitação aninhada/incorporada, na qual esse objeto é permitido, incluindo o valor de src=
e mask=
, e o caminho de uma solicitação aninhada/incorporada.
Por exemplo, a solicitação a seguir reutilizará a imagem especificada no caminho como a origem de uma camada em uma solicitação aninhada:
/is/image/a/b?…&layer=3&src=is{…&src=$object$}&…
Isso equivale a
/is/image/a/b?…&layer=3&src=is{…&src=a/b}&…
A definição de *
$object*
pode ser substituída especificando explicitamente $ *
object*=
com o valor desejado.
A variável de caminho predefinida geralmente é usada em conjunto com template=
.
Nenhum. Somente as variáveis que foram definidas serão substituídas pelo servidor (exceto a variável de caminho predefinida $object, que sempre será substituída). Quaisquer ocorrências de $ *
var*$
permanecerão literais se *
var*
não puderem ser correspondidas com uma definição de variável existente.
Consulte "Exemplo A" em Modelos.