Skip to main content
ONTAP Select
Uma versão mais recente deste produto está disponível.
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Transação de API de solicitação e resposta para ONTAP Select

Cada chamada à API de implantação é realizada como uma solicitação HTTP para a máquina virtual de implantação, que gera uma resposta associada ao cliente. Esse par solicitação/resposta é considerado uma transação de API. Antes de usar a API de implantação, você deve estar familiarizado com as variáveis de entrada disponíveis para controlar uma solicitação e o conteúdo da saída da resposta.

Variáveis de entrada que controlam uma solicitação de API

Você pode controlar como uma chamada de API é processada por meio de parâmetros definidos na solicitação HTTP.

Cabeçalhos de solicitação

Você deve incluir vários cabeçalhos na solicitação HTTP, incluindo:

  • content-type Se o corpo da solicitação incluir JSON, este cabeçalho deverá ser definido como application/json.

  • aceitar Se o corpo da resposta incluir JSON, este cabeçalho deverá ser definido como application/json.

  • autorização A autenticação básica deve ser definida com o nome de usuário e a senha codificados em uma string base64.

Corpo da solicitação

O conteúdo do corpo da solicitação varia dependendo da chamada específica. O corpo da solicitação HTTP consiste em um dos seguintes:

  • Objeto JSON com variáveis de entrada (como o nome de um novo cluster)

  • Vazio

Filtrar objetos

Ao emitir uma chamada de API que usa GET, você pode limitar ou filtrar os objetos retornados com base em qualquer atributo. Por exemplo, você pode especificar um valor exato para corresponder a:

<field>=<query value>

Além da correspondência exata, existem outros operadores disponíveis para retornar um conjunto de objetos em um intervalo de valores. O ONTAP Select suporta os operadores de filtragem mostrados abaixo.

Operador Descrição

=

Igual a

<

Menor que

>

Maior que

Menor ou igual a

>=

Maior ou igual a

Ou

!

Não é igual a

*

Curinga ganancioso

Você também pode retornar um conjunto de objetos com base em se um campo específico está definido ou não, usando a palavra-chave null ou sua negação (!null) como parte da consulta.

Selecionando campos de objeto

Por padrão, emitir uma chamada de API usando GET retorna apenas os atributos que identificam exclusivamente o(s) objeto(s). Esse conjunto mínimo de campos atua como uma chave para cada objeto e varia de acordo com o tipo de objeto. Você pode selecionar propriedades adicionais do objeto usando o parâmetro de consulta fields das seguintes maneiras:

  • Campos baratos Especificar fields=* para recuperar os campos de objeto que são mantidos na memória do servidor local ou que exigem pouco processamento para acesso.

  • Campos caros Especificar fields=** para recuperar todos os campos do objeto, incluindo aqueles que exigem processamento adicional do servidor para acesso.

  • Seleção de campo personalizado Usar fields=FIELDNAME para especificar o campo exato desejado. Ao solicitar vários campos, os valores devem ser separados por vírgulas, sem espaços.

Dica Como prática recomendada, você deve sempre identificar os campos específicos que deseja. Você só deve recuperar o conjunto de campos de baixo custo ou alto custo quando necessário. A classificação de baixo custo e alto custo é determinada pela NetApp com base em análises internas de desempenho. A classificação de um determinado campo pode mudar a qualquer momento.

Classificar objetos no conjunto de saída

Os registros em uma coleção de recursos são retornados na ordem padrão definida pelo objeto. Você pode alterar a ordem usando o parâmetro de consulta order_by com o nome do campo e a direção de classificação da seguinte maneira:
order_by=<field name> asc|desc

Por exemplo, você pode classificar o campo tipo em ordem decrescente seguido pelo id em ordem crescente:
order_by=type desc, id asc

Ao incluir vários parâmetros, você deve separar os campos com uma vírgula.

Paginação

Ao emitir uma chamada de API usando GET para acessar uma coleção de objetos do mesmo tipo, todos os objetos correspondentes são retornados por padrão. Se necessário, você pode limitar o número de registros retornados usando o parâmetro de consulta max_records na solicitação. Por exemplo:
max_records=20

Se necessário, você pode combinar este parâmetro com outros parâmetros de consulta para restringir o conjunto de resultados. Por exemplo, o seguinte retorna até 10 eventos do sistema gerados após o tempo especificado:
time⇒ 2019-04-04T15:41:29.140265Z&max_records=10

Você pode emitir várias solicitações para navegar pelos eventos (ou qualquer tipo de objeto). Cada chamada de API subsequente deve usar um novo valor de tempo com base no evento mais recente no último conjunto de resultados.

Interpretar uma resposta de API

Cada solicitação de API gera uma resposta ao cliente. Você pode examinar a resposta para determinar se foi bem-sucedida e recuperar dados adicionais, se necessário.

Código de status HTTP

Os códigos de status HTTP usados pela API REST de implantação são descritos abaixo.

Código Significado Descrição

200

OK

Indica sucesso para chamadas que não criam um novo objeto.

201

Criado

Um objeto foi criado com sucesso; o cabeçalho de resposta de localização inclui o identificador exclusivo do objeto.

202

Aceito

Um trabalho em segundo plano de longa execução foi iniciado para executar a solicitação, mas a operação ainda não foi concluída.

400

Pedido ruim

A entrada solicitada não é reconhecida ou é inadequada.

403

Proibido

Acesso negado devido a um erro de autorização.

404

Não encontrado

O recurso mencionado na solicitação não existe.

405

Método não permitido

O verbo HTTP na solicitação não é suportado para o recurso.

409

Conflito

Uma tentativa de criar um objeto falhou porque o objeto já existe.

500

Erro interno

Ocorreu um erro interno geral no servidor.

501

Não implementado

O URI é conhecido, mas não é capaz de executar a solicitação.

Cabeçalhos de resposta

Vários cabeçalhos são incluídos na resposta HTTP gerada pelo servidor de implantação, incluindo:

  • request-id Cada solicitação de API bem-sucedida recebe um identificador de solicitação exclusivo.

  • localização Quando um objeto é criado, o cabeçalho de localização inclui o URL completo para o novo objeto, incluindo o identificador exclusivo do objeto.

Corpo de resposta

O conteúdo da resposta associada a uma solicitação de API varia de acordo com o objeto, o tipo de processamento e o sucesso ou falha da solicitação. O corpo da resposta é renderizado em JSON.

  • Objeto único: Um único objeto pode ser retornado com um conjunto de campos com base na solicitação. Por exemplo, você pode usar GET para recuperar propriedades selecionadas de um cluster usando o identificador exclusivo.

  • Vários objetos Vários objetos de uma coleção de recursos podem ser retornados. Em todos os casos, há um formato consistente usado, com num_records indicando o número de registros e registros contendo uma matriz de instâncias do objeto. Por exemplo, você pode recuperar todos os nós definidos em um cluster específico.

  • Objeto Job: Se uma chamada de API for processada de forma assíncrona, um objeto Job será retornado, ancorando a tarefa em segundo plano. Por exemplo, a solicitação POST usada para implantar um cluster é processada de forma assíncrona e retorna um objeto Job.

  • Objeto de erro: Se ocorrer um erro, um objeto de erro sempre será retornado. Por exemplo, você receberá um erro ao tentar criar um cluster com um nome que já existe.

  • Vazio Em certos casos, nenhum dado é retornado e o corpo da resposta fica vazio. Por exemplo, o corpo da resposta fica vazio após usar DELETE para excluir um host existente.