Controlo de simultaneidade
Nota
As APIs do Cloud Partner Portal estão integradas e continuarão a trabalhar no Partner Center. A transição introduz pequenas alterações. Analise as alterações listadas na Referência da API do Cloud Partner Portal para garantir que seu código continue funcionando após a transição para o Partner Center. As APIs de CPP só devem ser usadas para produtos existentes que já estavam integrados antes da transição para o Partner Center; novos produtos devem usar APIs de envio do Partner Center.
Cada chamada para as APIs de publicação do Cloud Partner Portal deve especificar explicitamente qual estratégia de controle de simultaneidade usar. A falha ao fornecer o cabeçalho If-Match resultará em uma resposta de erro HTTP 400. Oferecemos duas estratégias para o controle de simultaneidade.
- Otimista - O cliente que executa a atualização verifica se os dados foram alterados desde a última leitura dos dados.
- Last one wins - O cliente atualiza diretamente os dados, independentemente de outro aplicativo tê-los modificado desde o último tempo de leitura.
Fluxo de trabalho de simultaneidade otimista
Recomendamos usar a estratégia de simultaneidade otimista, com o fluxo de trabalho a seguir, para garantir que nenhuma edição inesperada seja feita em seus recursos.
- Recupere uma entidade usando as APIs. A resposta inclui um valor ETag que identifica a versão atualmente armazenada da entidade (no momento da resposta).
- No momento da atualização, inclua esse mesmo valor ETag no cabeçalho obrigatório da solicitação If-Match .
- A API compara o valor ETag recebido na solicitação com o valor ETag atual da entidade em uma transação atômica.
- Se os valores ETag forem diferentes, a API retornará uma
412 Precondition Failed
resposta HTTP. Esse erro indica que outro processo atualizou a entidade desde a última vez que o cliente a recuperou ou que o valor ETag especificado na solicitação está incorreto. - Se os valores ETag forem os mesmos ou se o cabeçalho If-Match contiver o caractere curinga asterisco (
*
), a API executará a operação solicitada. A operação de API também atualiza o valor ETag armazenado da entidade.
- Se os valores ETag forem diferentes, a API retornará uma
Nota
A especificação do caractere curinga (*) no cabeçalho If-Match resulta na API usando a estratégia de simultaneidade Last-one-wins. Neste caso, a comparação ETag não ocorre e o recurso é atualizado sem quaisquer verificações.