Variáveis de substituição

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 a locais diferentes 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 de consulta 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 '.'.

OBSERVAÇÃO

value deve ser codificado por URL de passagem única para transmissão HTTP segura. É necessária codificação dupla se value for retransmitido via HTTP. Esse é o caso quando value é substituído em uma solicitação externa aninhada ou no atributo href de um elemento SVG <image>.

As referências de variável consistem no nome da variável delimitado por '$' à esquerda e à direita ($var$). As referências podem ocorrer em qualquer parte da porção de valor de qualquer comando IS (ou seja, entre '=' após o nome do comando e o '&' subsequente ou o final 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:

text=my$var2$tree

OBSERVAÇÃO

'$' não é um caractere reservado; pode ocorrer de outra forma 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 chamado my$image$file.tif existe), enquanto wid=$number$ não é, porque wid requer um argumento numérico.

Processamento de variável em solicitações aninhadas

$ *As variáveis *$ podem ocorrer em qualquer lugar dentro das chaves de uma solicitação aninhada de Exibição de imagem ou Renderização de imagem, incluindo à esquerda do '?' separando o caminho da 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 Exibição de imagem e Renderização de imagem. 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 a valores variáveis que devem ser substituídos em qualquer lugar nas solicitações aninhadas de Renderização de imagem ou Exibição de imagem ou nas strings catalog::Modifier associadas.

Processamento de variável em solicitações externas incorporadas

$ *As variáveis *$ que ocorrem em qualquer lugar nas chaves de uma solicitação externa 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 imagem.

Os valores de variáveis que devem ser substituídos em solicitações estrangeiras normalmente devem ser codificados duas vezes, já que nenhuma recodificação é aplicada antes que o servidor tente transmitir o url externo final.

Processamento de variável em arquivos SVG

$ *As variáveis *$ podem ocorrer em arquivos SVG em valores de atributo e em <text> sequências de caracteres. O Image Serving os substitui pelas definições $ *var*= correspondentes conhecidas no nível de aninhamento da solicitação no qual o arquivo SVG é especificado.

OBSERVAÇÃO

Qualquer valor de variável que deva ser substituído em um valor de atributo href deve ser codificado em URL duplo; todos os outros devem ser codificados individualmente.

Variável de caminho predefinida

O object especificado no caminho da solicitação é atribuído à variável predefinida *$object*. ' $ *object*$' pode ser colocado em qualquer ponto da solicitação, no modelo referenciado pela solicitação ou em uma solicitação aninhada/incorporada, onde esse objeto é permitido, incluindo o valor 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 fonte 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ída pela especificação explícita de $ *object*= com o valor desejado.

A variável de caminho predefinida geralmente é usada em conjunto com template=.

Padrão

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). Qualquer ocorrência de $ *var*$ permanecerá literal se *var*não puder ser correspondida com uma definição de variável existente.

Exemplos

Consulte "Exemplo A" em Templates.

Consulte também

Modelos, template=

Nesta página