API de Modelos de Dados de Produtos

Obter Modelo de Dados de Produto (Completo)

Retorna o modelo de dados do produto com o ID especificado (estrutura ISO 23387). Inclui TODAS as informações: grupos de propriedades, propriedades com atributos completos do dicionário de dados (EN ISO 23386), documentos de referência, e objeto de construção.

GET /api/{pdtID}

Formato: JSON

Inclui: Todas as colunas das tabelas productdatatemplates, groupofproperties, propertiesdatadictionaries, referencedocuments, constructionobjects

Exemplo: GET /api/1

Exportar Modelo de Dados de Produto como JSON (estrutura EN ISO 23387)

Retorna o modelo de dados do produto em formato JSON completamente compatível com EN ISO 23387.

GET /api/{pdtID}/json

Formato: JSON (estrutura EN ISO 23387)

Content-Type: application/json

Estrutura:

Os GUIDs são emitidos no formato UUID com hífens (8-4-4-4-12) para validarem contra o padrão do XSD ed-2. O elemento Library só admite o atributo dt:GUID e os elementos Name (sem dateOfCreation, URI ou Definition ao nível da Library).

{"Library": {
    "dt:GUID": "8d2f...-...-...-...-...",
    "Name": [
      { "language": "pt", "value": "..." },
      { "language": "en", "value": "..." }
    ],
    "DataTemplates": [{
        "Name": [...],
        "Definition": [...],
        "ReferenceDocumentRef": { "dt:GUID": "..." },
        "MajorVersion": 1,
        "MinorVersion": 0,
        "Status": "Active",
        "IsSubtypeOfRef": { "referenceURI": "https://pdts.pt/pdtview/{id}-{slug}" },
        "HasPartRef": [ { "referenceURI": "..." } ],
        "HasObjectTypeRef": { "dt:GUID": "..." },
        "HasPropertyRef": [ { "dt:GUID": "...", "referenceURI": "..." } ],
        "HasGroupOfPropertiesRef": [ { "dt:GUID": "...", "referenceURI": "..." } ],
        "dt:GUID": "...",
        "dateOfCreation": "2026-03-31T12:00:00Z"
    }],
    "ObjectType": {
        "Name": [...],
        "Definition": [...],
        "dt:GUID": "...",
        "dateOfCreation": "..."
    },
    "GroupOfProperties": [{
        "Name": [...],
        "Definition": [...],
        "IsSubtypeOfRef": { "referenceURI": "..." },
        "HasPartRef": [ { "referenceURI": "..." } ],
        "HasPropertyRef": [ { "dt:GUID": "...", "referenceURI": "..." } ],
        "dt:GUID": "...",
        "dateOfCreation": "..."
    }],
    "Properties": [{
        "Name": [...],
        "Definition": [...],
        "LanguageOfCreator": "pt-PT",
        "CountryOfOrigin": "PT",
        "MajorVersion": 1,
        "MinorVersion": 1,
        "Status": "Active",
        "DataType": {},
        "DimensionRef": { "dt:GUID": "..." },
        "UnitRef": [ { "dt:GUID": "...", "referenceURI": "..." } ],
        "QuantityKindRef": [ { "dt:GUID": "...", "referenceURI": "..." } ],
        "_physicalQuantity": "millimetre | en.EN",
        "IsDependentOnRef": [ { "referenceURI": "..." } ],
        "_dependencyDetails": [ {
          "dependencyKind": "...", "expression": "...",
          "targets": [ { "referenceURI": "...", "isPreferred": true, "position": 0 } ]
        } ],
        "IsSpecializationOfRef": { "referenceURI": "..." },
        "dt:GUID": "...",
        "dateOfCreation": "..."
    }],
 
    "ReferenceDocuments": [{
        "Name": [...],
        "Definition": [...],
        "Status": "...",
        "URI": "https://pdts.pt/referencedocumentview/{guid}",
        "Language": "en",
        "dt:GUID": "...",
        "dateOfCreation": "..."
    }]
}}

Exemplo: GET /api/1/json

Unidades / grandeza física / dimensão: a unidade é referenciada por UnitRef (GUID estável, e referenceURI QUDT quando disponível); a grandeza física por QuantityKindRef e a dimensão por DimensionRef. O campo _physicalQuantity apresenta o par ISO 23386 "grandeza física | idioma" (ex. "millimetre | en.EN"), ou "without" para propriedades sem unidade / de texto.

Exportar Modelo de Dados de Produto como XML (estrutura EN ISO 23387)

Retorna o modelo de dados do produto em formato XML completamente compatível com EN ISO 23387 XSD.

GET /api/{pdtID}/xml

Formato: XML

Content-Type: application/xml

Estrutura:

<?xml version="1.0" encoding="UTF-8"?>
<dt:Library xmlns:dt="https://standards.iso.org/iso/23387/ed-2/en/"
            dt:GUID="8d2f...-...-...-...-...">
    <dt:Name language="pt">...</dt:Name>
    <dt:Name language="en">...</dt:Name>
    <dt:DataTemplate dt:GUID="..." dateOfCreation="2026-03-31T12:00:00Z">
        <dt:Name language="pt">...</dt:Name>
        <dt:Name language="en">...</dt:Name>
        <dt:Definition language="pt">...</dt:Definition>
        <dt:Definition language="en">...</dt:Definition>
        <dt:ReferenceDocumentRef dt:GUID="..."/>
        <dt:MajorVersion>1</dt:MajorVersion>
        <dt:MinorVersion>0</dt:MinorVersion>
        <dt:Status>Active</dt:Status>
        <dt:IsSubtypeOfRef dt:referenceURI="https://pdts.pt/pdtview/{id}-{slug}"/>
        <dt:HasPartRef dt:referenceURI="..."/>
        <dt:HasObjectTypeRef dt:GUID="..."/>
        <dt:HasPropertyRef dt:GUID="..." dt:referenceURI="..."/>
        <dt:HasGroupOfPropertiesRef dt:GUID="..." dt:referenceURI="..."/>
    </dt:DataTemplate>
    <dt:ObjectType dt:GUID="..." dateOfCreation="...">
        <dt:Name language="en">...</dt:Name>
        <dt:Definition language="en">...</dt:Definition>
        <dt:IsSubtypeOfRef dt:referenceURI="..."/>
    </dt:ObjectType>
    <dt:GroupOfProperties dt:GUID="..." dateOfCreation="...">
        <dt:Name language="pt">...</dt:Name>
        <dt:Definition language="pt">...</dt:Definition>
        <dt:IsSubtypeOfRef dt:referenceURI="..."/>
        <dt:HasPropertyRef dt:GUID="..." dt:referenceURI="..."/>
    </dt:GroupOfProperties>
    <dt:Property dt:GUID="..." dateOfCreation="...">
        <dt:Name language="pt">...</dt:Name>
        <dt:Definition language="pt">...</dt:Definition>
        <dt:LanguageOfCreator>pt-PT</dt:LanguageOfCreator>
        <dt:CountryOfOrigin>PT</dt:CountryOfOrigin>
        <dt:MajorVersion>1</dt:MajorVersion>
        <dt:MinorVersion>1</dt:MinorVersion>
        <dt:Status>Active</dt:Status>
        <dt:ReferenceDocumentRef dt:GUID="..."/>
        <dt:DataType name="STRING"/>
        <dt:DimensionRef dt:GUID="..."/>
        <dt:UnitRef dt:GUID="..." dt:referenceURI="..."/>
        <dt:QuantityKindRef dt:GUID="..." dt:referenceURI="..."/>
        <dt:IsDependentOnRef dt:referenceURI="..."/>
        <dt:IsSpecializationOfRef dt:referenceURI="..."/>
    </dt:Property>
    <dt:ReferenceDocument dt:GUID="..." dateOfCreation="...">
        <dt:Name language="en">...</dt:Name>
        <dt:Definition language="en">...</dt:Definition>
        <dt:Status>...</dt:Status>
        <dt:Language>en</dt:Language>
        <dt:URI>https://pdts.pt/referencedocumentview/{guid}</dt:URI>
    </dt:ReferenceDocument>
</dt:Library>

Exemplo: GET /api/1/xml

Obter Todos os Modelos de Dados de Produtos

Retorna todos os templates de dados de produtos.

GET /api/productDataTemplates

Obter todas as propriedades do Dicionário de Dados

Retorna todas as propriedades do dicionário de dados dos modelos de dados do produto.

GET /api/dataDictionary

Obter uma propriedade do Dicionário de dados

Retorna uma propriedade e seus atributos do dicionário de dados.

GET /api/dataDictionary/{Id}

Obter Documentos de Referência

Retorna os documentos de referência usados nos templates de dados de produtos.

GET /api/referenceDocuments

Obter um Documento de Referência

Retorna um documento de referência usado nos templates de dados de produtos.

GET /api/referenceDocuments/{GUID}

Obter Grupos de Propriedades

Retorna os grupos de propriedades para os templates de dados de produtos.

GET /api/groupsOfProperties

Obter um Grupo de Propriedades

Retorna um grupo de propriedades e seus atributos para um template de dados de produto.

GET /api/groupsOfProperties/{Id}

Obter Todos os objectos de construção

Retorna todos os objectos de construção.

GET /api/constructionObjects

Obter Todas as Unidades

Retorna todas as unidades (ISO 23387 UnitType), cada uma com o seu URI de identidade resolúvel (@id), grandeza física e dimensão associadas, e a ligação à autoridade externa QUDT (sameAs, quando disponível).

GET /api/units

Formato: JSON

[{
    "@id": "https://pdts.pt/unit/mm",
    "type": "Unit",
    "guid": "...",
    "code": "mm",
    "name": "millimetre",
    "physicalQuantity": { "name": "length", "languageIsoCode": "en.EN", "@id": "https://pdts.pt/quantitykind/length" },
    "dimension": { "canonical": "L", "@id": "https://pdts.pt/dimension/L" },
    "sameAs": "http://qudt.org/vocab/unit/MilliM"
}]

Detalhe: siga o @id de cada unidade para GET /api/unit/{code} (representação completa, incl. escala/base/coeficiente).

Obter Todas as Grandezas Físicas

Retorna todas as grandezas físicas (ISO 23387 QuantityKindType), cada uma com o seu URI de identidade (@id) e a dimensão associada.

GET /api/quantityKinds

Formato: JSON

[{
    "@id": "https://pdts.pt/quantitykind/length",
    "type": "QuantityKind",
    "guid": "...",
    "name": "length",
    "languageIsoCode": "en.EN",
    "dimension": { "canonical": "L", "@id": "https://pdts.pt/dimension/L" },
    "sameAs": null
}]

Obter Todas as Dimensões

Retorna todas as dimensões (ISO 23387 DimensionType), cada uma com o seu URI de identidade (@id) e os 7 expoentes SI (ordem ISO 80000).

GET /api/dimensions

Formato: JSON

[{
    "@id": "https://pdts.pt/dimension/L",
    "type": "Dimension",
    "guid": "...",
    "canonical": "L",
    "exponents": {
      "Length": "1.000", "Mass": "0.000", "Time": "0.000", "ElectricCurrent": "0.000",
      "ThermodynamicTemperature": "0.000", "AmountOfSubstance": "0.000", "LuminousIntensity": "0.000"
    },
    "sameAs": null
}]