СЕТКА

A GRID (глобальный идентификатор ресурса, Global Resource ID) — это глобально уникальный, стабильный идентификатор любой сущности на платформе Altium: проекта, компонента, BOM, задачи и т. д.

Зачем нужны GRID

Сущности платформы обычно имеют локальные идентификаторы (GUID, числовые ID), которые уникальны только в пределах своего собственного контекста. GUID проекта не является глобально уникальным — два проекта в разных Workspace могут иметь один и тот же GUID. ID позиции поставки не имеет смысла вне системы поставок. Из-за этого невозможно однозначно ссылаться на сущность между сервисами, событиями и интеграциями.

GRID решают эту проблему, кодируя необходимый контекст непосредственно в идентификаторе: область, тенант, ограниченный контекст, тип сущности и локальный ID — все это является частью GRID. Имея только GRID, платформа может найти сущность без какого-либо дополнительного контекста.

Формат

GRID представляют собой URI, использующие grid в качестве схемы.

grid:area:[tenant-id]:context:resource-type/resource-id

GRID чувствительны к регистру и состоят из двух основных частей:

  • Context path – area:[tenant-id]:context – фиксированная структура с использованием : в качестве разделителя

  • Resource path – resource-type/resource-id – определяется ограниченным контекстом с использованием / в качестве разделителя

Путь ресурса поддерживает подресурсы: resource-type/id/sub-type/sub-id.

Компоненты

Компонент

Обязательно

Описание

area

Да

Широкая доменная область платформы — global, workspace, supply, community, manufacture

tenant-id

Нет

ID тенанта (GUID Workspace для ресурсов Workspace). Опускается для ресурсов, не принадлежащих конкретному тенанту

context

Да

Ограниченный контекст — design, library, procurement, collaboration, platform, events и т. д.

resource-type

Да

Понятное человеку имя сущности из словаря домена

resource-id

Да

Локальный идентификатор сущности

Имена областей согласованы с областями OAuth scope и намеренно не привязаны к продуктам и брендам — в формате GRID не используются названия продуктов. Это делает GRID стабильными при ребрендинге продуктов и изменениях в компании.

Для глобальных ресурсов (организаций, пользователей, приложений) компонент тенанта отсутствует — обратите внимание на двойное двоеточие (::) в примерах ниже.

Примеры

Global resources (без тенанта):

grid:global::platform:organization/837af973-180e-45ab-a93a-62a66f44d75a
grid:global::platform:user/837af973-180e-45ab-a93a-62a66f44d75a
grid:global::events:subscription/41428e10-d66a-4b27-8bbf-3a51496cceae

Workspace resources (GUID Workspace в качестве тенанта):

grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:design:project/DA051CB4-13C4-41A7-A795-2A5EBC2B9A9B
grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:library:component/0F629FA7-A5C5-4034-829A-83CC5E95B947
grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:procurement:bom/BD74926A-7AFA-454E-8879-C79E8C8685EE
grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:collaboration:task/BCC891F1-49C3-46B2-9A03-85F882133050

Supply resources (без тенанта — части не принадлежат Workspace):

grid:supply::platform:part/43736907

Common Data Model (CDM) — это авторитетный справочный источник по GRID, определенным для сущностей платформы. В нем документированы ограниченные контексты, типы сущностей и их структура GRID.

GRID в API

GRID представлены в Altium 365 API как поля id: ID! у сущностей. API следует соглашению GraphQL Global Object Identification — имея GRID, платформа может напрямую повторно получить сущность с помощью запроса node:

query {
  node(id: "grid:workspace:d2e3a7b0-4eb4-4339-a3d6-20276ca4f7eb:design:adproject/a7ceb47c-db37-426a-a9ef-117d1146be35") {
    ... on DesProject {
      name
      description
    }
  }
}

API gateway использует структуру GRID, чтобы направить запрос в правильный подграф — от вызывающей стороны не требуется никакой дополнительный контекст.

GRID постепенно внедряются во все сущности API. Некоторые сущности в настоящее время возвращают непрозрачные base64-кодированные node ID — это устаревший формат базового GraphQL-фреймворка. По мере расширения использования GRID они будут заменены структурированными GRID.

 

AI-LocalizedЛокализовано с помощью ИИ
Если вы обнаружили проблему, выделите текст/изображение и нажмитеCtrl + Enter, чтобы отправить нам свой отзыв.
Контент