-
Notifications
You must be signed in to change notification settings - Fork 4
Erste Schritte mit datacat: Entwickler
Beispiel: Abfrage von Klassen
Ausgabe sind alle Klassen mit dem Namen "Beleuchtung" inklusive ihrer in "nodes {}" angegebenen Parameter.
{
findSubjects(input: {query: "Beleuchtung"}) {
nodes {
id
createdBy
}
}
}
Beispiel: Abfrage von Größen
Wenn der Abfrage kein Wert im "query"-Parameter übergeben wird, werden alle Katalogelemente des Typs "Größe", inklusive der in "nodes {}" angegebenen Parameter, ausgegeben.
{
findMeasures(input: {query: ""}) {
nodes {
name
createdBy
}
}
}
Beispiel: Abfrage der Hierarchie
Ausgabe der gesamten Hierarchie möglich. Filterung nach ID, Schlagworten oder Knoten-Typ möglich.
{
hierarchy(input: {rootNodeFilter: {catalogEntryTypeIn: Subject}}) {
nodes {
name
description
}
}
}
Im GraphiQL-Interface sind diese weiteren Abfragen möglich:
Abfrage | Rückgabe |
---|---|
hierarchy | Hierarchie |
findTags | Schlagworte |
findExternalDocuments | Referenzdokumente |
findBags | Fachmodelle |
findAssignsPropertyWithValues | Gruppen |
findSubjects | Klassen |
findNests | Merkmalsgruppen |
findProperties | Merkmale |
findMeasures | Größen |
findUnits | Maßeinheiten |
findValues | Werte |
findAccounts | Nutzer (siehe hier) |
Bei diesen Abfragen sind folgende Parameter (nodes) möglich:
Parameter | Rückgabe |
---|---|
id | Eindeutige ID des Knoten |
name | Name des Knoten |
description | Beschreibung des Knoten |
tags {name, id} | Schlageworte des Knoten (hier: name und ID des Schlagwortes) |
names {language(displayLanguage)} | Verfügbare Sprachen des Knoten |
created | Erstellungsdatum |
createdBy | Name des Erstellers |
lastModified | Datum der letzten Bearbeitung |
lastModifiedBy | Name des letzten Bearbeiters |
versionId | Versions-ID |
versionDate | Datum der Version |
recordType | Knoten-Typ |
__typename | Knoten-Typ (nach ISO 12006-3) |
Weitere GraphiQL-Befehle befinden sich innerhalb der "Docs" welche rechts oberhalb des Ausgabefensters des GraphiQL Interfaces zu finden sind!
Erstellen einer neuen Klasse (XtdSubject)
mutation {
createCatalogEntry(input: {
catalogEntryType: Subject
properties: {
id: 1234
version: {
versionId: "1.0"
versionDate: "13.12.2021"
}
names: {
id: 123
languageTag: "de"
value: "Neue Klasse"
}
}
tags: 234763214
}) {
catalogEntry{__typename}
}
}
Weitere GraphiQL-Befehle befinden sich innerhalb der "Docs" welche rechts oberhalb des Ausgabefensters des GraphiQL Interfaces zu finden sind!
Aktualisieren eines Namens
mutation {
updateName(input: {
catalogEntryId: 67574
name: {
translationId: 123
value: "Neuer Name"
}
}) {
catalogEntry{__typename}
}
}
Weitere GraphiQL-Befehle befinden sich innerhalb der "Docs" welche rechts oberhalb des Ausgabefensters des GraphiQL Interfaces zu finden sind!
(noch nicht implementiert)
Um die Katalogkonsistenz zu gewährleisten, sind über den Reiter "Prüfen" im Menü die Prüfroutinen abrufbar. Die umfassen die folgenden Abfragen:
Abfrage | Überprüfung auf |
---|---|
FindBagWithoutGroupOrSubject | Fachmodelle ohne zugehörige Gruppe oder Klasse |
FindSubjectWithoutProp | Klassen ohne zugehörige Merkmale oder Merkmalsgruppen |
FindPropGroupWithoutProp | Merkmalsgruppen ohne zugehörige Merkmale |
FindPropWithoutSubjectOrPropGroup | Merkmale ohne zugehörige Klassen oder Merkmalsgruppe |
FindMeasureWithoutProp | Größen ohne Merkmal |
FindUnitWithoutMeasure | Einheiten ohne Größe |
FindValueWithoutMeasure | Werte ohne Einheiten |
FindMultipleIDs | ID-Duplikate |
FindMultipleNames | Namens-Duplikate |
FindMissingDescription | Fehlende Beschreibung |
FindMissingEnglishDescription | Fehelende englische Beschreibung |
FindMissingEnglishName | Fehelender englischer Name |
Beispiel: FindMultipleNames
Die Parameter für die Ausgabe sind der Tabelle im oberen Absatz Abfragen zu entnehmen.
{
FindMultipleNames(input: {rootNodeFilter: {}}) {
nodes {
name
id
description
}
}
}
Dieser Teil bezieht sich auf die Arbeit mit einer lokalen datacat-Instanz zur Entwicklung. Voraussetzung ist das erfolgreiche Durchführen des Leitfaden zur lokalen Installation von datacat.
Das Frontend, in Form des datacat-Editors basiert auf dem JavaScript-Framework React. Daher werden Änderungen am Frontend nach dem Speichern der angepassten Datei direkt im Browser angezeigt.
Das Backend basiert vollständig auf Java. Es ist empfehlenswert, Änderungen am Code über einen Quelltext-Editor, wie Visual Studio Code, vorzunehmen. Anders als bei JavaScript ist es notwendig, damit die Änderungen über den Browser sichtbar sind, den entsprechenden Docker-Container vollständig neu zu starten. Wenn nur das Backend selbst bearbeitet wird, ist es nötig, den Container datacat zu löschen und das Image datacat_api zu entfernen. Das Löschen des Containers kann über den Befehl:
$ docker compose down
durchgeführt werden. Wenn das Image manuell gelöscht wurde, kann der Container "datacat" über die Konsole neu gestartet werden:
$ docker-compose up -d
Die Container db und mail betreffen in der Regel die Weiterentwicklung nicht. Über mail wird der E-Mail-Verkehr für die Registrierung neuer Nutzer verwaltet. Dieses Prozess ist in der lokalen datacat-Umgebung nicht funktionsfähig. Der db-Container betrifft die Datenbank und wird im Rahmen dieses Tutorials bearbeitet.