As variáveis de substituição são usadas para transferir valores do URL da 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 locais diferentes em uma solicitação complexa.
$ *
var*= *
value*
var |
Nome da variável. |
value |
Valor com o qual a variável deve ser definida (string). |
Definições e referências de variáveis podem ocorrer na parte de consulta da solicitação, em catalog::Modifier
e em catalog::PostModifier
.
As variáveis são definidas como acima, de modo semelhante 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 HTTP segura. A codificação dupla é necessária se value
O é retransmitido por meio de HTTP. É o que acontece quando value
é substituído em uma solicitação externa aninhada ou no atributo href de um SVG <image>
elemento.
As referências variáveis consistem no nome da variável delimitado por '$' à esquerda e à direita ($var$). As referências podem ocorrer em qualquer lugar na porção do valor de qualquer comando IS (isto é, entre o '=' após o nome do comando e o '&' subsequente ou o fim da solicitação). Variáveis personalizadas não podem ser aplicadas ao layer=
e effect=
comandos. Várias variáveis são permitidas no mesmo valor de comando. O servidor substitui cada ocorrência de $ *
var*$
com value
.
As referências variáveis não podem ser aninhadas. Qualquer ocorrência de $ *
var*$
no prazo de value
não são substituídas.
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; caso contrário, pode ocorrer na solicitação. Por exemplo, src=my$image$file.tif
é um comando válido (supondo que uma entrada de catálogo ou arquivo de imagem nomeado my$image$file.tif
existe), enquanto wid=$number$
não é, porque wid
requer um argumento numérico.
$ *
var*$
As referências podem ocorrer em qualquer lugar dentro das chaves de uma solicitação aninhada de Disponibilização de imagem ou Renderização de imagem, inclusive à esquerda de "?" separar o caminho da consulta. O servidor substitui essas referências por valores (do url ou do catalog::Modifier
do catálogo de imagens principal) antes de analisar e processar a solicitação aninhada.
Além disso, todas as $ *
var*=
definições do url ou catalog::Modifier
são encaminhadas para todas as solicitações aninhadas de Servidor de imagens e Renderização de imagens. Isso garante que todas as definições de variável 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 aos valores de variável que devem ser substituídos em qualquer lugar nas solicitações aninhadas de Renderização de imagem ou de Servidor de imagens, ou nas solicitações associadas a elas catalog::Modifier
strings.
$ *
var*$
as referências que ocorrem em qualquer lugar dentro das chaves de uma solicitação estrangeira incorporada são substituídas por 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.
Os valores de variáveis que devem ser substituídos em solicitações estrangeiras normalmente devem ser codificados duas vezes, já que nenhuma nova codificação é aplicada antes que o servidor tente transmitir o URL externo final.
$ *
var*$
referências podem ocorrer em arquivos SVG em valores de atributo e em <text>
strings. O Servidor de imagens os substitui pela correspondência $ *
var*=
definições conhecidas no nível de aninhamento de solicitações em que o arquivo SVG é especificado.
Qualquer valor variável que deva ser substituído em um href
o valor do atributo deve ser codificado com URL duplo; todos os outros devem ser codificados individualmente.
A variável object
especificado no caminho da solicitação é atribuído à variável predefinida *
$object*
. ' $ *
objeto*$
"pode ser colocado em qualquer lugar na solicitação, no modelo referenciado pela solicitação ou em uma solicitação aninhada/incorporada onde 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 reutiliza 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$}&…
É equivalente a
/is/image/a/b?…&layer=3&src=is{…&src=a/b}&…
A definição de *
$object*
pode ser substituído especificando explicitamente $ *
objeto*=
com o valor desejado.
A variável de caminho predefinida geralmente é usada em conjunto com template=
.
Nenhum. Somente as variáveis que foram definidas são substituídas pelo servidor (exceto a variável de caminho predefinida $object, que é sempre substituída). Qualquer ocorrência de $ *
var*$
permanecer literal se *
var*
não pode corresponder a uma definição de variável existente.
Consulte o "Exemplo A" em Modelos.