SIATKA

GRID (Global Resource ID) to globalnie unikalny, stabilny identyfikator dowolnego bytu na platformie Altium – projektu, komponentu, BOM-u, zadania itd.

Dlaczego istnieją GRID-y

Byty platformy zazwyczaj mają lokalne identyfikatory (GUID-y, identyfikatory numeryczne), które są unikalne wyłącznie w swoim własnym kontekście. GUID projektu nie jest globalnie unikalny – dwa projekty w różnych Workspace’ach mogą mieć ten sam GUID. Identyfikator części dostawcy nie ma znaczenia poza systemem zaopatrzenia. To uniemożliwia jednoznaczne odwoływanie się do bytu w różnych usługach, zdarzeniach i integracjach.

GRID-y rozwiązują ten problem, kodując niezbędny kontekst bezpośrednio w identyfikatorze: obszar, tenant, bounded context, typ bytu i lokalny identyfikator są częścią GRID-u. Mając wyłącznie GRID, platforma może zlokalizować byt bez żadnego dodatkowego kontekstu.

Format

GRID-y są identyfikatorami URI używającymi grid jako schematu.

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

GRID-y rozróżniają wielkość liter i składają się z dwóch głównych części:

  • Context path – area:[tenant-id]:context – stała struktura używająca : jako separatora

  • Resource path – resource-type/resource-id – definiowana przez bounded context, z użyciem / jako separatora

Ścieżka zasobu obsługuje podzasoby: resource-type/id/sub-type/sub-id.

Składniki

Składnik

Wymagany

Opis

area

Tak

Szeroki domenowy obszar platformy – global, workspace, supply, community, manufacture

tenant-id

Nie

Identyfikator tenanta (GUID Workspace dla zasobów Workspace). Pomijany dla zasobów, które nie należą do konkretnego tenanta

context

Tak

Bounded context – design, library, procurement, collaboration, platform, events itd.

resource-type

Tak

Czytelna dla człowieka nazwa bytu z domenowego słownictwa

resource-id

Tak

Lokalny identyfikator bytu

Nazwy obszarów są zgodne z obszarami zakresów OAuth i celowo nie odnoszą się do produktów ani marek – w formacie GRID nie pojawiają się nazwy produktów. Dzięki temu GRID-y pozostają stabilne mimo rebrandingu produktów i zmian w firmie.

Dla zasobów globalnych (organizacje, użytkownicy, aplikacje) składnik tenant nie występuje – zwróć uwagę na podwójny dwukropek (::) w poniższych przykładach.

Przykłady

Global resources (bez tenanta):

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 jako tenant):

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 (bez tenanta – części nie należą do Workspace):

grid:supply::platform:part/43736907

Common Data Model (CDM) jest autorytatywnym źródłem odniesienia dla GRID-ów zdefiniowanych dla bytów platformy. Dokumentuje bounded contexts, typy bytów oraz ich strukturę GRID.

GRID-y w API

GRID-y pojawiają się w API Altium 365 jako pola id: ID! w bytach. API stosuje konwencję GraphQL Global Object Identification – mając GRID, platforma może bezpośrednio ponownie pobrać byt za pomocą zapytania node:

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

Brama API wykorzystuje strukturę GRID do skierowania zapytania do właściwego subgrafu – od wywołującego nie jest potrzebny żaden dodatkowy kontekst.

GRID-y są stopniowo wdrażane w bytach API. Niektóre byty obecnie zwracają nieprzezroczyste identyfikatory węzłów zakodowane w base64 – to starszy format pochodzący z bazowego frameworka GraphQL. W miarę rozszerzania wdrożenia GRID-ów zostaną one zastąpione przez ustrukturyzowane GRID-y.

 

AI-LocalizedTłumaczenie SI
Jeśli znajdziesz błąd, zaznacz tekst/obraz i naciśnij Ctrl + Enter aby wysłać nam wiadomość.
Treść