CMDB API de ingestão de dados
. Ingestão de dados do CMDB A API fornece endpoints que permitem a ingestão em lote de uma matriz de objetos em uma tabela de conjunto de importação.
Além disso, esta API não funcionará por padrão para instâncias zbooted.
Esta API é ativada por meio de Configuration Management Database (CMDB)(com.snc.cmdb) e requer a função cmdb_import_api_admin.
CMDB Ingestão de dados - POST /cmdb/ingest/(data_source_sys_id)
Insere registros na tabela Conjunto de importação associada ao registro da fonte de dados identificado pelo sys_id aprovado.
Além disso, esta API não funcionará por padrão para instâncias zbooted.
O corpo da solicitação deve conter a matriz JSON de objetos (carga) para inserir na tabela Conjunto de importação. Cada objeto equivale a uma linha na tabela, cada par nome-valor equivale a uma coluna. A carga JSON deve aproveitar os nomes de campo do conjunto de importação sem o prefixo "u_". Por exemplo, o nome do campo "u_matching_record" deve ser "matching_record" na carga do corpo da solicitação. Se a tabela Conjunto de importação existir, o endpoint anexará as linhas (objetos) à tabela Conjunto de importação existente. Nenhuma verificação de duplicatas ou atualização de registros existentes é realizada.
Se você estiver criando inicialmente uma aplicação, primeiro crie o registro de fonte de dados associado em sua instância antes de chamar este endpoint. Se você estiver usando este endpoint apenas para adicionar registros a uma tabela de Conjunto de importação existente, não será necessário criar o registro da fonte de dados, mas você deve conhecer seu sys_id. O registro da fonte de dados descreve a tabela Conjunto de importação na qual inserir a carga especificada. Esta tabela deve estender a tabela Linhas do conjunto de importação [sys_import_set_row]. Além disso, a fonte de dados deve ser definida como Anexo e o formato definido como JSON . Para obter mais informações sobre fontes de dados, consulte Fontes de dados .
Se a tabela Conjunto de importação definida no registro da fonte de dados não existir, o endpoint anexará a carga transmitida ao registro da fonte de dados. Para criar a tabela do Conjunto de importação inicial, você deve importar manualmente os dados para a tabela Conjunto de importação. Para importar os dados, no formulário Fonte de dados associada, clique em Carregar 20 registros de carga de teste ou Carregar todos os registros Link na seção Links relacionados. Depois que a tabela Conjunto de importação for criada, você não poderá adicionar colunas à tabela usando este endpoint. Se pares nome-valor forem passados posteriormente que não existam na tabela Conjunto de importação, eles serão ignorados sem aviso. Se você precisar modificar as colunas na tabela Conjunto de importação, poderá adicioná-las manualmente à tabela. Você também pode excluir ou renomear a tabela Conjunto de importação e chamar o endpoint novamente usando a nova carga.
Você deve ter a função cmdb_import_api_admin para acessar este endpoint.
Formato de URL
URL com controle de versão: /api/now//cmdb/ingest/(data_source_sys_id)
URL padrão: /api/now/cmdb/ingest/
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| api_version | Opcional. Versão do endpoint para acessar. Por exemplo, v1 ou v2 . Especifique este valor somente para usar uma versão de endpoint diferente da mais recente. Tipo de dados: Cadeia de caracteres |
| data_source_sys_id | Sys_id do registro da fonte de dados. Tipo de dados: Cadeia de caracteres |
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| Nome | Descrição |
|---|---|
| Matriz | Matriz de forma livre de objetos que descrevem os dados a serem anexados à tabela Conjunto de importação associada. Cada objeto na matriz define uma linha na tabela Conjuntos de importação; cada nome-valor combina uma coluna. Nota:
Esta matriz deve ser nomeada, como "Registros":["hostname": "Hostname1", "número de série": "2acd3873-7fc5-454c-8844-e7769e4d6cfc", "model": "ID do modelo", "fornecedor": "Co"] .Tipo de dados: Matriz de objetos |
Cabeçalhos
Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta. Para obter uma lista de cabeçalhos gerais usados na REST API, consulte Cabeçalhos da REST API compatíveis .
| Cabeçalho | Descrição |
|---|---|
| Aceitar | Formato de dados do corpo da resposta. Tipos compatíveis: application/jsonou application/xml. Padrão: application/json |
| Tipo de conteúdo | Formato de dados do corpo da solicitação. Tipos compatíveis: application/jsonou application/xml. Padrão: application/json |
| Cabeçalho | Descrição |
|---|---|
| Nenhum(a) |
Códigos de status
Os seguintes códigos de status se aplicam a esta ação HTTP. Para obter uma lista de possíveis códigos de status usados na REST API, consulte REST API códigos de resposta HTTP .
| Código de status | Descrição |
|---|---|
| 201 | Criado. Um anexo foi adicionado à fonte de dados. |
| 202 | Aceito. Linhas foram adicionadas à tabela Conjunto de importação. |
| 400 | Solicitação Incorreta. Um tipo de solicitação incorreto ou uma solicitação malformada foi detectada. |
| 404 | Não encontrado. O item solicitado não foi encontrado. |
| 409 | Conflito. O anexo já existe na fonte de dados. |
| 500 | Erro interno do servidor. Ocorreu um erro inesperado ao processar a solicitação. A resposta contém informações adicionais sobre o erro. |
| 501 | Não implementado. O formato de solicitação não é compatível. |
Parâmetros do corpo da resposta (JSON ou XML)
| Nome | Descrição |
|---|---|
| erro | Descreve um erro encontrado. Tipo de dados: Objeto |
| error.details | Informações adicionais sobre o erro. Tipo de dados: Cadeia de caracteres |
| mensagem.erro | Mensagem descrevendo o erro. Tipo de dados: Cadeia de caracteres |
| import_set | Nome da tabela do conjunto de importação à qual a carga foi anexada. Tipo de dados: Cadeia de caracteres |
| staged_row_count | Número de linhas anexadas à tabela Conjunto de importação. Tipo de dados: Número |
| staging_table | Nome do registro da fonte de dados usado para preparar a carga. Tipo de dados: Cadeia de caracteres |
| status | Status do erro. Tipo de dados: Cadeia de caracteres |
Solicitação de curl de amostra
curl "instance.service-now.com/api/now/cmdb/ingest/4dd9686d1b9800103d374087bc4bcb3d" \
--request POST \
--header "Accept: application/json" \
--header "Content-Type:application/json" \
--data "{\"records\":[{\"hostname\": \"Hostname1\", \"serialnumber\": \"2acd3873-7fc5-454c-8844-e7769e4d6cfc\", \"model\": \"Model 5100"},{\"vendor\": \"ABC Co\"},
{\"hostname\": \"Hostname2\", \"serialnumber\": \"3adb3873-7fc5-564d-8844-e7769e4d6ded\", \"model\": \"Model 5200"},{\"vendor\": \"ACME Co\"}]}"
--user "username":"password"
Resposta bem-sucedida:
{
"result": {
"staged_row_count": 2,
"import_set": "ISET0010010",
"staging_table": "sn_my_demo_integra_demo_data_source_01"
}
}