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 para importação.
Esta API não funcionará por padrão para instâncias zbooted.
Esta API é ativada por meio do 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 para importação associada ao registro da fonte de dados identificado pelo sys_id aprovado.
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) a ser inserida 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 dos campos 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, deverá primeiro criar o registro da fonte de dados associada em sua instância antes de chamar este endpoint. Se você estiver usando este endpoint apenas para adicionar registros a uma tabela de Conjunto para 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 para importação na qual a carga especificada será inserida. 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 para 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 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 ou Carregar todos os registros Link na seção Links relacionados. Depois que a tabela Conjunto para importação é criada, você não pode adicionar colunas à tabela usando este endpoint. Se pares nome-valor forem passados posteriormente e não existirem na tabela Conjunto para importação, eles serão ignorados sem aviso. Se você precisar modificar as colunas na tabela Conjunto para importação, poderá adicioná-las manualmente à tabela. Você também pode excluir ou renomear a tabela Conjunto para 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/(data_source_sys_id)
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| api_version | Opcional. Versão do endpoint a ser acessado. 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 para importação associada. Cada objeto na matriz define uma linha na tabela Conjuntos para importação; cada nome-valor emparelha uma coluna. Nota:
Esta matriz deve ser nomeada, como "Registros":["nome do host": "Hostname1", "número de série": "2acd3873-7fc5-454c-8844-e7769e4d6cfc", "model": "ID do modelo", "fornecedor": "Co": "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 de 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 Códigos de resposta HTTP da REST API .
| Código do status | Descrição |
|---|---|
| 201 | Criado. Um anexo foi adicionado à fonte de dados. |
| 202 | Aceito. Linhas foram adicionadas à tabela Conjunto para 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 para 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"
}
}