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 e variáveis definidos na solicitação HTTP.
Métodos HTTP
Os métodos HTTP suportados pela API REST do SnapCenter são mostrados na tabela a seguir.
|
|
Nem todos os métodos HTTP estão disponíveis em cada um dos pontos de extremidade REST. |
| Método HTTP | Descrição |
|---|---|
PEGAR |
Recupera propriedades de objeto em uma instância ou coleção de recursos. |
PUBLICAR |
Cria uma nova instância de recurso com base na entrada fornecida. |
EXCLUIR |
Exclui uma instância de recurso existente. |
COLOCAR |
Modifica uma instância de recurso existente. |
Cabeçalhos de solicitação
Você deve incluir vários cabeçalhos na solicitação HTTP.
Tipo de conteúdo
Se o corpo da solicitação incluir JSON, este cabeçalho deverá ser definido como application/json.
Aceitar
Este cabeçalho deve 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 como 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
-
Vazio
Filtrando 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 de uma correspondência exata, outros operadores estão disponíveis para retornar um conjunto de objetos em um intervalo de valores. A API REST do SnapCenter suporta os operadores de filtragem mostrados na tabela abaixo.
| Operador | Descrição |
|---|---|
= |
Igual a |
< |
Menor que |
> |
Maior que |
⇐ |
Menor ou igual a |
>= |
Maior ou igual a |
ATUALIZAR |
Ou |
! |
Não é igual a |
* |
Curinga ganancioso |
Você também pode retornar uma coleção 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.
|
|
Todos os campos que não são definidos geralmente são excluídos das consultas correspondentes. |
Solicitando campos de objetos específicos
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 fields parâmetro de consulta das seguintes maneiras:
Campos comuns ou padrão
Especifique fields=* para recuperar os campos de objeto mais comumente usados. Esses campos geralmente são mantidos na memória do servidor local ou exigem pouco processamento para acesso. Essas são as mesmas propriedades retornadas para um objeto após usar GET com uma chave de caminho de URL (UUID).
Todos os campos
Especifique fields=** para recuperar todos os campos do objeto, incluindo aqueles que exigem processamento adicional do servidor para acesso.
Seleção de campo personalizado
Use fields=<nome_do_campo> para especificar o campo exato que você deseja. Ao solicitar vários campos, os valores devem ser separados por vírgulas, sem espaços.
|
|
Como prática recomendada, você deve sempre identificar os campos específicos que deseja. Você deve recuperar somente o conjunto de campos comuns ou todos os campos quando necessário. Quais campos são classificados como comuns e retornados usando fields=* são determinados pela NetApp com base na análise de desempenho interna. A classificação de um campo pode mudar em versões futuras. |
Classificando 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 order_by parâmetro de consulta com o nome do campo e a direção de classificação da seguinte forma:
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
-
Se você especificar um campo de classificação, mas não fornecer uma direção, os valores serão classificados em ordem crescente.
-
Ao incluir vários parâmetros, você deve separar os campos com uma vírgula.
Paginação ao recuperar objetos em uma coleção
Ao emitir uma chamada de API usando GET para acessar uma coleção de objetos do mesmo tipo, o SnapCenter tenta retornar o máximo de objetos possível com base em duas restrições. Você pode controlar cada uma dessas restrições usando parâmetros de consulta adicionais na solicitação. A primeira restrição atingida para uma solicitação GET específica encerra a solicitação e, portanto, limita o número de registros retornados.
|
|
Se uma solicitação terminar antes de iterar sobre todos os objetos, a resposta conterá o link necessário para recuperar o próximo lote de registros. |
Limitando o número de objetos
Por padrão, o SnapCenter retorna no máximo 10.000 objetos para uma solicitação GET. Você pode alterar esse limite usando o parâmetro de consulta max_records. Por exemplo:
max_records=20
O número de objetos realmente retornados pode ser menor que o máximo em vigor, com base na restrição de tempo relacionada, bem como no número total de objetos no sistema.
Limitar o tempo usado para recuperar os objetos
Por padrão, o SnapCenter retorna o máximo de objetos possível dentro do tempo permitido para a solicitação GET. O tempo limite padrão é 15 segundos. Você pode alterar esse limite usando o parâmetro de consulta return_timeout. Por exemplo:
return_timeout=5
O número de objetos realmente retornados pode ser menor que o máximo em vigor, com base na restrição relacionada ao número de objetos, bem como no número total de objetos no sistema.
Estreitando o conjunto de resultados
Se necessário, você pode combinar esses dois parâmetros com parâmetros de consulta adicionais para restringir o conjunto de resultados. Por exemplo, o seguinte retorna até 10 eventos EMS gerados após o tempo especificado:
time⇒ 2018-04-04T15:41:29.140265Z&max_records=10
Você pode emitir várias solicitações para percorrer os objetos. Cada chamada de API subsequente deve usar um novo valor de tempo com base no evento mais recente no último conjunto de resultados.
Propriedades de tamanho
Os valores de entrada usados com algumas chamadas de API, bem como certos parâmetros de consulta, são numéricos. Em vez de fornecer um número inteiro em bytes, você pode usar um sufixo, conforme mostrado na tabela a seguir.
| Sufixo | Descrição |
|---|---|
KB |
KB Kilobytes (1024 bytes) ou kibibytes |
MB |
MB Megabytes (KB x 1024 bytes) ou mebibytes |
GB |
GB Gigabytes (MB x 1024 bytes) ou gibibytes |
tuberculose |
TB Terabytes (GB x 1024 bytes) ou tebibytes |
PB |
PB Petabytes (TB x 1024 bytes) ou pebibytes |