Criar tópico

Importante

Essa API está obsoleta e desativada a partir de 1º/11/2021 e não deve mais ser usada.

Cria um novo tópico. Depois de criado, o manifesto do recurso do tópico é imutável. Essa operação é idempotente. Repetir a chamada de criação depois que uma fila com o mesmo nome tiver sido criada com sucesso resulta em uma mensagem de erro “409 Conflito”.

Observe o seguinte:

  • O tópico não é excluído imediatamente. Ele é marcado para exclusão e o agente de gerenciamento de recursos recupera essa solicitação de exclusão dentro de 5 minutos. No entanto, a interface do usuário deve refletir essa operação imediatamente, de acordo com o código HTTP recebido.

  • O nome do tópico é, na verdade, o caminho do URI. A expressão regular a seguir valida cada segmento no caminho URI após a remoção da possível codificação de %.

  • O nome do tópico deve estar de acordo com a expressão regular a seguir.

    public static readonly Regex SafeMessagingEntityNameExpression = new Regex(@"^[\w-\.\$]*/?$", RegexOptions.Compiled | RegexOptions.ECMAScript);

    Isso significa o seguinte:

    • Os segmentos da entidade podem conter apenas letras, números, pontos (.), hifens (-) e sublinhados (_).

    • Vários segmentos são permitidos (por exemplo, se nome da fila = "a/b/c", ele contém três segmentos).

    • A barra de encaminhamento (/) não é permitida como um prefixo ou sufixo do nome da fila.

    • O número máximo de caracteres é 50.

Solicitação

Método URI da solicitação Versão HTTP
PUT https://management.core.windows.net/{subscription ID}/services/ServiceBus/Namespaces/{Namespace}/Topics/{Topic Path} HTTP/1.1

Cabeçalhos de solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais.

Cabeçalho da solicitação Descrição
Tipo de conteúdo application/xml;type=entry;charset=utf-8
x-ms-version 2012-03-01

A solicitação também requer um certificado do cliente. Esse certificado deve corresponder ao carregado para uma assinatura específica.

Corpo da solicitação

A tabela a seguir descreve os principais elementos do corpo da solicitação:

Nome da propriedade Tipo Obrigatório Descrição
MaxTopicSizeInMegaBytes Inteiro sem sinal Obrigatórios. Esse parâmetro especifica o tamanho máximo do tópico em megabytes. Qualquer tentativa de enfileirar uma mensagem que faça com que o tópico exceda esse valor falhe. Somente conteúdo do usuário é relevante para esse valor. Configurável no momento da criação do tópico e no tempo de execução:

- Intervalo: 1 a 5*1024.

– Padrão: 1*1024.
TopicSizeinBytes Inteiro sem sinal Somente leitura. Não é necessário durante a criação. Esse parâmetro reflete o número real de bytes que as mensagens no tópico ocupam no momento em relação à cota do tópico.

Intervalo: 0 – MaxTopicSizeinMegaBytes
DefaultMessageTimeToLive Datetime XML Opcional. Com base em se as mensagens mortas estão habilitadas, se uma mensagem tiver sido armazenada no tópico por mais do que o tempo especificado, ela será movida automaticamente para a fila de mensagens mortas ou excluída. Esse valor é substituído por um TTL especificado na mensagem se o TTL da mensagem for menor que o TTL definido no tópico. Esse valor é imutável depois que o tópico é criado:

- Intervalo: 1 segundo a 14 dias.

– Padrão: 14 dias.
RequiresDuplicateDetection Boolean Opcional. Configurável somente no momento da criação do tópico.

– Padrão para o tópico durável: False.
EnableDeadLetteringOnMessageExpiration Boolean Opcional. Configurável somente no momento da criação do tópico.

– Padrão: False.

Esse campo determina como o Barramento de Serviço manipula uma mensagem com um TTL expirado. Se ele estiver habilitado e uma mensagem expirar, o Barramento de Serviço moverá a mensagem do tópico para a subconsulta de mensagens mortas desse tópico. Se estiver desabilitado, a mensagem é permanentemente excluída do tópico.
DuplicateDetectionHistoryTimeWindow Período de tempo Opcional. Uma propriedade que especifica o período de tempo durante o qual o Barramento de Serviço detecta a duplicação da mensagem.

- Intervalo: 1 segundo a 7 dias.

– Padrão: 10 minutos.
NumberOfSubscriptions Integer Somente leitura. Não é necessário durante a criação. Número de assinaturas do tópico.
Status String Somente leitura. Um dos seguintes valores:

- Criando: quando ainda está na fase de criação.
- Ativo: por padrão após a criação ou quando o usuário o ativa após a última suspensão.
- Suspenso: quando o usuário atualiza a entidade a ser suspensa.

Resposta

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Códigos de resposta

Observação

Se você criar um tópico com um nome que contenha caracteres especiais ou codificados (por exemplo, test?Name=value&, que é codificado para test%3FName%3Dvalue%26), uma exceção (401) Não autorizada será gerada.

Código Descrição
201 Tópico criado com êxito.
400 Corpo da solicitação inválido.
401 Falha de autorização.
403 Cota excedida; fila não atualizada.
500 Erro interno.

Para obter informações sobre códigos de status, consulte Códigos de status e de erro.

Cabeçalhos de resposta

Cabeçalho de Resposta Descrição
Tipo de conteúdo application/xml;type=entry;charset=utf-8

Corpo da resposta

A descrição do tópico é retornada, porque se algumas propriedades da descrição estiverem ausentes na solicitação PUT, elas podem conter valores padrão.