Как работать в API

В этом примере мы покажем, как использовать поиск и отслеживание API.

С помощью поиска API можно проверить, находится ли искомое лицо в списке значимых политических лиц или в санкционных списках.
Отслеживание API проверяет обновление информации как существующих, так и несуществующих лиц.

Шаг 1

Найдем Дональда Трампа.

curl -X POST\
-H "ds-api-token: [[apiKey]]"\
-H "Accept: application/json"\
-H "Content-Type: application/json"\
https://api.dataspike.io/api/v2/sealed/universal/search

Параметры
Параметры тела запроса

{
 "name":"Donald Trump"
}

Пример ответа:

{
    "requested_name": "Donald Trump",
    "search_uuid": "df6e9e48-aad7-457a-987c-c504c7914ccb",
    "data": [
              {
            "uuid": "c998b276-5698-4611-b581-50c4b91465a2",
            "category": "person",
            "main_name": "Donald Trump",
            "lookup_name": "donald trump",
            "fields": {
                "Alias": {
                    "type": "StringField",
                    "title": "Alias",
                    "values": [
                        "Donald Trump"
                    ]
                },
                "Links": {
                    "type": "URLField",
                    "title": "Links",
                    "values": [
                        {
                            "name": "WikiData Org",
                            "url": "https://www.wikidata.org/wiki/Q22686"
                        }
                    ]
                },
                "Politician role": {
                    "type": "StringField",
                    "title": "Politician role",
                    "values": [
                        "President of the united states since 2017-01-20"
                    ]
                },
                "Primary birth location": {
                    "type": "StringField",
                    "title": "Primary birth location",
                    "values": [
                        "Jamaica Hospital"
                    ]
                },
                "Citizenship": {
                    "type": "StringField",
                    "title": "Citizenship",
                    "values": [
                        "United States of America"
                    ]
                },
                "Gender": {
                    "type": "StringField",
                    "title": "Gender",
                    "values": [
                        "Male"
                    ]
                },
                "Primary date of birth": {
                    "type": "StringField",
                    "title": "Primary date of birth",
                    "values": [
                        "14 Jun 1946"
                    ]
                },
                "Possible dates of birth": {
                    "type": "StringField",
                    "title": "Possible dates of birth",
                    "values": [
                        "14 Jun 1946"
                    ]
                },
                "Possible location of birth": {
                    "type": "StringField",
                    "title": "Possible location of birth",
                    "values": [
                        "Jamaica Hospital"
                    ]
                },
                "Related news": {
                    "type": "URLField",
                    "title": "Related news",
                    "values": [
                        ...
                    ]
                },
                "Summary": {
                    "type": "StringField",
                    "title": "Summary",
                    "values": [
                        "45th and current president of the United States"
                    ]
                }
            },
            "similarity": 1.0
        },
    ]
}

Шаг 2

В шаге 1 было два возможных результата:

  1. Нужный человек найден, ему присвоено поле uuid (уникальный идентификатор): uuid: c998b276-5698-4611-b581-50c4b91465a2.
  2. Человек не найден.

В следующем шаге мы начнем мониторинг обновлений информации о существующем лице или появление нового лица.

Для этого создадим список отслеживания и присвоим ему идентификатор:

curl -X POST\
-H "ds-api-token: [[apiKey]]"\
-H "Accept: application/json"\
-H "Content-Type: application/json"\
https://api.dataspike.io/api/v2/sealed/watch/lists/create

Параметры
Параметры тела запроса

{
 "name":"Donald Trump lists"
}

Пример ответа:

{
    "id":"032f6b0a-1ce1-44ea-a67b-cec9f6b37c55"
}

Теперь можно добавить лицо, найденное в шаге 1, в новый список отслеживания с идентификатором id:032f6b0a-1ce1-44ea-a67b-cec9f6b37c55

Если человек был найден, используется идентификатор uuid: c998b276-5698-4611-b581-50c4b91465a2

curl -X POST\
-H "ds-api-token: [[apiKey]]"\
-H "Content-Type: application/json"\
https://api.dataspike.io/api/v2/sealed/watch/list/032f6b0a-1ce1-44ea-a67b-cec9f6b37c55/add

Параметры
Параметры пути, идентификатор созданного списка отслеживания

    "id" : "032f6b0a-1ce1-44ea-a67b-cec9f6b37c55"

Если человек найден, используется идентификатор uuid: c998b276-5698-4611-b581-50c4b91465a2
Параметры тела запроса

{
    "uuid": "c998b276-5698-4611-b581-50c4b91465a2"
}

Если лицо НЕ найдено, то uuid тоже нет, поэтому добавляем имя:

{
   "name": "Donald Trump"
}

Шаг 3

Теперь нужно проверить, есть ли в списке отслеживания обновления:

curl -X GET\
-H "ds-api-token: [[apiKey]]"\
-H "Accept: application/json"\
https://api.dataspike.io/api/v2/sealed/watch/list/032f6b0a-1ce1-44ea-a67b-cec9f6b37c55/info

Параметры
Параметры пути

    "id" : "032f6b0a-1ce1-44ea-a67b-cec9f6b37c55"

Пример ответа:

{
    "id": "032f6b0a-1ce1-44ea-a67b-cec9f6b37c55",
    "user_id": 1,
    "name": "Donald Trump lists",
    "last_viewed": "2021-02-02T13:54:26.708212Z",
    "created_at": "2021-02-02T13:54:26.708212Z",
    "updated_at": "2021-02-02T13:54:26.708212Z",
    "count": 2
}

Если updated_at больше, чем last_viewed, значит для какого-то лица была добавлена новая информация, и можно проверять изменения.

curl -X GET\
-H "ds-api-token: [[apiKey]]"\
-H "Accept: application/json"\
https://api.dataspike.io/api/v2/sealed/watch/list/032f6b0a-1ce1-44ea-a67b-cec9f6b37c55

Параметры
Параметры пути

    "id" : "032f6b0a-1ce1-44ea-a67b-cec9f6b37c55"

Пример ответа:

{
   "data": [
             {
            "row_id": 329,
            "id": "032f6b0a-1ce1-44ea-a67b-cec9f6b37c55",
            "uuid": "c998b276-5698-4611-b581-50c4b91465a2",
            "status": 1,
            "item": {
                "uuid": "c998b276-5698-4611-b581-50c4b91465a2",
                "category": "person",
                "main_name": "Donald Trump",
                "lookup_name": "donald trump",
                "fields": {
                    "Alias": {
                        "type": "StringField",
                        "title": "Alias",
                        "values": [
                            "Donald Trump"
                        ]
                    },
                    "Links": {
                        "type": "URLField",
                        "title": "Links",
                        "values": [
                            {
                                "name": "WikiData Org",
                                "url": "https://www.wikidata.org/wiki/Q22686"
                            }
                        ]
                    },
                    "Politician role": {
                        "type": "StringField",
                        "title": "Politician role",
                        "values": [
                            "President of the united states since 2017-01-20"
                        ]
                    },
                    "Primary birth location": {
                        "type": "StringField",
                        "title": "Primary birth location",
                        "values": [
                            "Jamaica Hospital"
                        ]
                    },
                    "Citizenship": {
                        "type": "StringField",
                        "title": "Citizenship",
                        "values": [
                            "United States of America"
                        ]
                    },
                    "Gender": {
                        "type": "StringField",
                        "title": "Gender",
                        "values": [
                            "Male"
                        ]
                    },
                    "Primary date of birth": {
                        "type": "StringField",
                        "title": "Primary date of birth",
                        "values": [
                            "14 Jun 1946"
                        ]
                    },
                    "Possible dates of birth": {
                        "type": "StringField",
                        "title": "Possible dates of birth",
                        "values": [
                            "14 Jun 1946"
                        ]
                    },
                    "Possible location of birth": {
                        "type": "StringField",
                        "title": "Possible location of birth",
                        "values": [
                            "Jamaica Hospital"
                        ]
                    },
                    "Related news": {
                        "type": "URLField",
                        "title": "Related news",
                        "values": [
                            ...
                        ]
                    },
                    "Summary": {
                        "type": "StringField",
                        "title": "Summary",
                        "values": [
                            "45th and current president of the United States"
                        ]
                    }
                },
                "similarity": 1.0
            },
            "updated_at": "2021-02-02T14:01:40.893990Z",
            "created_at": "2021-02-02T14:01:40.893990Z"
        },
        ],
    "has_next": false
}
                   

В некоторых случаях рекомендуется создать несколько списков отслеживания. Все списки можно найти здесь:

curl -X GET\
-H "ds-api-token: [[apiKey]]"\
-H "Accept: application/json"\
https://api.dataspike.io/api/v2/sealed/watch/lists

Пример ответа:

    {
    "data": [
                {
                    "id": "032f6b0a-1ce1-44ea-a67b-cec9f6b37c55",
                    "user_id": 1,
                    "name": "Donald Trump lists",
                    "last_viewed": "2021-02-02T14:03:58.143Z",
                    "created_at": "2021-02-02T13:54:26.708212Z",
                    "updated_at": "2021-02-02T13:54:26.708212Z",
                    "count": 1
                },
                {
                    "id": "a004fd32-2a41-40ed-8b8e-cf0a4fa02099",
                    "user_id": 1,
                    "name": "Name 2",
                    "last_viewed": "2021-02-01T10:28:04.733Z",
                    "created_at": "2020-11-10T11:40:29.335236Z",
                    "updated_at": "2020-11-10T11:40:29.335236Z",
                    "count": 3
                },
                {
                    "id": "f853ad3d-3ff5-4eef-aadf-f1782228f122",
                    "user_id": 1,
                    "name": "Name 3",
                    "last_viewed": "2021-02-02T10:22:28.666Z",
                    "created_at": "2021-02-02T10:07:17.349569Z",
                    "updated_at": "2021-02-02T10:07:17.349569Z",
                    "count": 10
                },
    
    ]
}