Справочники

Облачный Pyrus
Безоблачный Pyrus

GET /catalogs/{catalog-id}

Метод возвращает справочник со всеми элементами.

GET https://api.pyrus.com/v4/catalogs/422?include_deleted

Тело ответа

{
  "catalog_id": 6625,
  "name": "Clients",
  "catalog_headers": [
    {
      "name": "Name",
      "type": "text"
    },
    {
      "name": "Company",
      "type": "text"
    }
  ],
  "items": [
    {
      "item_id": 15200,
      "values": [
        "Reatha Middendorf",
        "Acme, inc."
      ]
    },
    {
      "item_id": 15201,
      "values": [
        "Daedra Ullrich",
        "Widget Corp"
      ]
    },
    {
      "item_id": 15202,
      "values": [
        "Andy Mahn",
        "123 Warehousing"
      ]
    }
  ]
}

curl

curl -X GET \
  https://api.pyrus.com/v4/catalogs/422?include_deleted \
  -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
  -H 'Content-Type: application/json'

Параметры

include_deletedДобавляет удаленные элементы справочника в результаты запроса. Доступно только пользователям с правами администратора организации.

GET /catalogs

Метод возвращает все справочники без элементов.

GET https://api.pyrus.com/v4/catalogs

Тело ответа

{
    "catalogs": [
        {
            "catalog_id": 31816,
            "name": "Catalog1",
            "version": 151199,
            "deleted": false,
            "supervisors": [
                1731
            ],
            "external_version": 0
        },
        {
            "catalog_id": 31817,
            "name": "Catalog2",
            "version": 109104,
            "deleted": false,
            "external_version": 0
        }
]
}

curl

curl -X GET \
  https://api.pyrus.com/v4/catalogs \
  -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
  -H 'Content-Type: application/json'

PUT /catalogs

Создание справочника. Метод возвращает созданный справочник со всеми элементами.

PUT https://api.pyrus.com/v4/catalogs

Тело запроса

{
  "name": "Clients",
  "catalog_headers": [
    "Name",
    "Company"
  ],
  "items": [
    {
      "values": [
        "Reatha Middendorf",
        "Acme, inc."
      ]
    },
    {
      "values": [
        "Daedra Ullrich",
        "Widget Corp"
      ]
    },
    {
      "values": [
        "Andy Mahn",
        "123 Warehousing"
      ]
    }
  ]
}

Тело ответа

{
  "catalog_id": 6625,
  "name": "Clients",
  "catalog_headers": [
    {
      "name": "Name",
      "type": "text"
    },
    {
      "name": "Company",
      "type": "text"
    }
  ],
  "items": [
    {
      "item_id": 15200,
      "values": [
        "Reatha Middendorf",
        "Acme, inc."
      ]
    },
    {
      "item_id": 15201,
      "values": [
        "Daedra Ullrich",
        "Widget Corp"
      ]
    },
    {
      "item_id": 15202,
      "values": [
        "Andy Mahn",
        "123 Warehousing"
      ]
    }
  ]
}

curl

curl -X PUT \
  https://api.pyrus.com/v4/catalogs/ \
  -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "Clients",
  "catalog_headers": [
    "Name",
    "Company"
  ],
  "items": [
    {
      "values": [
        "Reatha Middendorf",
        "Acme, inc."
      ]
    },
    {
      "values": [
        "Daedra Ullrich",
        "Widget Corp"
      ]
    },
    {
      "values": [
        "Andy Mahn",
        "123 Warehousing"
      ]
    }
  ]
}'

POST /catalogs/{catalog-id}

Синхронизация справочника. Метод обновляет значения и заголовки справочника. Необходимо передать все значения и текстовые колонки, которые должны остаться в справочнике. Все неуказанные в запросе значения и текстовые колонки будут удалены. Колонки маршрутизации добавить/удалить с помощью этого запроса нельзя. Можно только изменить значения для существующей колонки маршрутизации. Для этого ее нужно явно передать в списке колонок. Первая колонка справочника является ключевой. Поэтому изменить ее название нельзя. Метод возвращает список значений, которые были добавлены/изменены/удалены.

POST https://api.pyrus.com/v4/catalogs/6625

Тело запроса

{
  "apply": true,
  "catalog_headers": [
    "Name",
    "Company"
  ],
  "items": [
    {
      "values": [
        "Reatha Middendorf",
        "Acme"
      ]
    },
    {
      "values": [
        "Daedra Ullrich",
        "Widget Corp"
      ]
    },
    {
      "values": [
        "Jean Overturf",
        "Demo Company"
      ]
    }
  ]
}

Тело ответа

{
  "apply": true,
  "added": [
    {
      "item_id": 15205,
      "values": [
        "Jean Overturf",
        "Demo Company"
      ]
    }
  ],
  "deleted": [
    {
      "item_id": 15202,
      "values": [
        "Andy Mahn",
        "123 Warehousing"
      ]
    }
  ],
  "updated": [
    {
      "item_id": 15200,
      "values": [
        "Reatha Middendorf",
        "Acme"
      ]
    }
  ],
  "catalog_headers": [
    {
      "name": "Name",
      "type": "text"
    },
    {
      "name": "Customer Company",
      "type": "text"
    }
  ]
}

curl

curl -X POST \
  https://api.pyrus.com/v4/catalogs/6625 \
  -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
  "apply": true,
  "catalog_headers": [
    "Name",
    "Company"
  ],
  "items": [
    {
      "values": [
        "Reatha Middendorf",
        "Acme"
      ]
    },
    {
      "values": [
        "Daedra Ullrich",
        "Widget Corp"
      ]
    },
    {
      "values": [
        "Jean Overturf",
        "Demo Company"
      ]
    }
  ]
}'

Параметры

applyУкажите true если хотите обновить справочник и false если хотите только посчитать, какие элементы будут добавлены/удалены/обновлены.
catalog_headersСписок колонок. Все неперечисленные текстовые колонки будут удалены.
itemsСписок значений. Все неперечисленные значения будут удалены.

POST /catalogs/{catalog-id}/diff

Изменение справочника. Метод позволяет добавлять новые, изменять или удалять существующие записи справочника. Первая колонка справочника является ключевой. Для добавления или изменения записей передается массив значений этих записей. Для удаления передается только список ключей. Метод возвращает список значений, которые были добавлены, изменены или удалены (аналогично методу синхронизации справочника).

POST https://api.pyrus.com/v4/catalogs/6625/diff

Тело запроса

{
    "upsert": [
    {
        "values": [
            "Reatha Middendorf",
            "Acme"
        ]
    },
    {
        "values": [
            "Daedra Ullrich",
            "Widget Corp"
        ]
    }],
    "delete": ["Jean Overturf"]
}

Тело ответа

{
    "apply": true,
    "added": [
    {
        "item_id": 24807,
        "values": [
            "Daedra Ullrich",
            "Widget Corp"
        ]
    }],
    "deleted": [
    {
        "item_id": 23169,
        "values": [
            "Jean Overturf",
            "Demo Company"
        ]
    }],
    "updated": [
    {
        "item_id": 23178,
        "values": [
            "Reatha Middendorf",
            "Acme"
        ]
    }],
    "catalog_headers": [
    {
        "name": "Name",
        "type": "text"
    },
    {
        "name": "Company name",
        "type": "text"
    }]
}
{
    "apply": true,
    "added": [
    {
        "item_id": 24807,
        "values": [
            "Daedra Ullrich",
            "Widget Corp"
        ]
    }],
    "deleted": [
    {
        "item_id": 23169,
        "values": [
            "Jean Overturf",
            "Demo Company"
        ]
    }],
    "updated": [
    {
        "item_id": 23178,
        "values": [
            "Reatha Middendorf",
            "Acme"
        ]
    }],
    "catalog_headers": [
    {
        "name": "Name",
        "type": "text"
    },
    {
        "name": "Company name",
        "type": "text"
    }]
}

curl

curl -X POST \
 https://api.pyrus.com/v4/catalogs/6625/diff \
 -H 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
 -H 'Content-Type: application/json' \
 -d '{
 "upsert": [
 {
   "values": [
     "Reatha Middendorf",
     "Acme"
   ]
 },
 {
   "values": [
     "Daedra Ullrich",
     "Widget Corp"
   ]
 }],
 "delete": ["Jean Overturf"]
}'

Параметры

upsertСписок значений записей для добавления и изменения.
deleteСписок ключей (значения первой колонки) для удаления.

Была ли эта статья полезной?