Skip to content
This repository has been archived by the owner on Sep 7, 2020. It is now read-only.

Ressourcen

Stephan edited this page Sep 10, 2019 · 8 revisions

Bereitgestellte Ressourcen

Dieser Service stellt Daten der Typen: Project, Module, StudyCourse bereit. Diese können per REST Schnittstelle abgefragt werden. Hierbei wird der HAL Standart eingehalten.

Ressource: Module

Pfad: /projectModules/

{
      "id" : UUID,
      "name" : Name,
      "projectType" : Type,
      "_links" : {
        "self" : {
          "href" : "https://gpdev.archi-lab.io/modules/UUID"
        },
        "module" : {
          "href" : "https://gpdev.archi-lab.io/modules/UUID"
        }
      }
    }

Beschreibung

Diese Ressource ist eine Kopie der Ressource "Module" aus dem Service "module-service". "Module" sind Module, also alle Veranstaltungen, Pflichtveranstaltungen, oder weitere allgemein definierte Sachen, die Credit Points haben (Dies beinhaltet z.B. Fächer und Abschlussarbeiten). Ein Modul ist exakt einem Studiengang zugeordnet.

Felder Type Beschreibung Constraints
id UUID Die ID des Elementes Primary key
name Text Der Name des Modules Max size: 255
projectType Enum Projekt Type eines Moduls -

Wertebereich für die Felder:

Feld Werte
projectType PP, BA, MA

Erklärung zu den Feldern:

Feld Erklärung
- -
Links:
Links Beschreibung
self Self Link der Ressource
module Link, der auf diese Ressource zeigt

Link zu profile: "https://api.prox.archi-lab.io/profile/projectModules"
Link zu search: "https://api.prox.archi-lab.io/projectModules/search"

Search Links:

findByExternalModuleID
https://api.prox.archi-lab.io/projectModules/search/findByExternalModuleID{?externalModuleID}
Es wird dem Module gesucht, der die entsprechende externe Module ID besitzt.

Ressource: StudyCourse

Pfad: /projectStudyCourses/

{
      "id" : UUID,
      "name" : Name,
      "academicDegree" : Abschlussart (Bachelor / Master),
      "_links" : {
        "self" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID"
        },
        "studyCourse" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID"
        },
        "modules" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID/modules"
        },
        "studyDirections" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID/studyDirections"
        },
        "parentStudyCourse" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID/parentStudyCourse"
        }
      }
    }

Beschreibung

Diese Ressource ist eine Kopie der Ressource "StudyCourse" aus dem Service "module-service". "StudyCourses" sind Studiengänge, also Sachen, für die man sich bewerben kann bei der Hochschule, um diese zu Studieren und eingetragener Student zu werden.

Feld Type Beschreibung Constraints
id UUID Die ID des Elementes Primary Key
name Text Der Name des Studienganges Max Size: 255
academicDegree Enum Die Abschlussart mit den Werten "Bachelor" und "Master" -

Wertebereich für die Felder:

Feld Werte
academicDegree Bachelor, Master

Erklärung zu den Feldern:

Feld Erklärung
- -

Links:

Links Beschreibung
self Self Link der Ressource
studyCourse Link, der auf diese Ressource zeigt
modules Liste Module dieses Studienganges

Link zu profile: "https://api.prox.archi-lab.io/profile/projectStudyCourses"
Link zu search: "https://api.prox.archi-lab.io/projectStudyCourses/search"

Search Links:

findByExternalStudyCourseID
https://api.prox.archi-lab.io/projectStudyCourses/search/findByExternalStudyCourseID{?externalStudyCourseID}
Es wird dem StudyCourse gesucht, der die entsprechende externe StudyCourse ID besitzt.
findByAcademicDegree
https://api.prox.archi-lab.io/projectStudyCourses/search/findByAcademicDegree{?academicDegree}
Es wird nach allen StudyCourses gesucht, die die entsprechende Abschlussart haben.

Ressource: Project

Pfad: /projects/

{
      "id" : UUID,
      "name" : Name,
      "shortDescription": Text,
      "description": Text,
      "requirement": Text,
      "status": Enum,
      "creatorID": UUID,
      "creatorName": Text,
      "supervisorName": Text,
      "created": DateTime,
 	  "modified": DateTime,
    
      "_links" : {
        "self" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID"
        },
        "studyCourse" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID"
        },
        "modules" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID/modules"
        },
        "tags": {
          "href": "http://localhost:9002/projects/318fc8b4-2c91-498a-aa17-a00316baf982/tags"
    }
        "studyDirections" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID/studyDirections"
        },
        "parentStudyCourse" : {
          "href" : "https://gpdev.archi-lab.io/studyCourses/UUID/parentStudyCourse"
        }
      }
    }

Beschreibung

"StudyCourses" sind Studiengänge, also Sachen, für die man sich bewerben kann bei der Hochschule, um diese zu Studieren und eingetragener Student zu werden.

Feld Type Beschreibung Constraints
id UUID Die ID des Elementes Primary Key
name Text Der Name des Projektes Max Size: 10000
shortDescription Text Kurzer Text, welcher das Projekt beschreibt. Max Size: 10000
description Text Beschreibung des Projektes Max Size: 10000
requirement Text Text, der Vorraussetzungen für das Projekt beschreibt. Max Size: 10000
status Enum/Text Status eines Projektes. -
creatorID UUID ID des Erstellers des Projektes -
creatorName Text Name des Erstellers Max Size: 255
supervisorName Text Name des Verantwortlichen Max Size: 255
created Date Zeitstempel, wann das Projekt erzeugt wurde automatisch erzeugt
modified Date Zeitstempel, wann das Projekt geändert wurde automatisch erzeugt

Wertebereich für die Felder:

Feld Werte
status VERFÜGBAR, LAUFEND, ABGESCHLOSSEN

Erklärung zu den Feldern:

Feld Erklärung
supervisorName Derjenige, der für das Projekt verantwortlich ist.
Links:
Links Beschreibung
self Self Link der Ressource
project Link, der auf diese Ressource zeigt
modules Liste Module, die mit dem Projekt verbunden sind
tags Liste Tags, die mit dem Projekt verbunden sind

Es besteht eine many to many Beziehung von Modulen und Projekten. Der Grund liegt darin, dass z.b. bei dem Modul Bachelor, auch das Modul Kolloquium zur Bachelorarbeit existiert, und diese zusammen gehören, aber als getrennte Module existieren.

Link zu profile: "https://api.prox.archi-lab.io/profile/projects"
Link zu search: "https://api.prox.archi-lab.io/projects/search"

Search Links:

findByStatus
https://api.prox.archi-lab.io/projects/search/findByStatus{?status}
Es wird nach allen Projekten gesucht, die den entsprechenden Status haben.
findBySupervisorName_SupervisorNameContaining
https://api.prox.archi-lab.io/projects/search/findBySupervisorName_SupervisorNameContaining{?supervisorName}
Es wird nach allen Projekten gesucht, die den entsprechenden Supervisor Substring haben.

Ressource: Tag

Pfad: /tags/

{

  "id" : "d84056d6-c34a-47f8-a804-a7d4ed648c13",
  "tagName" : "java",

  "_links" : {

    "self" : {

      "href" : "http://localhost:9002/projectTags/d84056d7-c34a-47f8-a804-a7d4ed648c13"

    },

    "tag" : {

      "href" : "http://localhost:9002/projectTags/d84056d7-c34a-47f8-a804-a7d4ed648c13"

    }

  }

}

Beschreibung

Ein Tag ist ein Label für ein Projekt. Sie haben jeweils einen einzigartigen Namen. Einen Projekt können meherere Tags zugeordnet sein.

Feld Type Beschreibung Constraints
id UUID Die ID des Elementes Primary Key
tagName Text Der Name des Tags max size: 40

Erklärung zu den Feldern:

Feld Erklärung
tagName wird immer automatisch zu Kleinbuchstaben formatiert

Links:

Links Beschreibung
self Self Link der Ressource
tag Link, der auf diese Ressource zeigt

Es besteht eine many to many Beziehung von Projekten und Tags. Der Grund liegt darin, dass ein Projekt viele Tags haben kann und ein Tag zu vielen Projekten verbunden sein kann.

Link zu profile: "https://api.prox.archi-lab.io/profile/tags"
Link zu search: "https://api.prox.archi-lab.io/tags/search"

Search Links:

findByTagName_TagName
https://api.prox.archi-lab.io/tags/search/findByTagName_TagName{?tagName}
Es wird nach dem Tag gesucht, der den entsprechenden Namen hat.
findByTagName_TagNameContaining
https://api.prox.archi-lab.io/tags/search/findByTagName_TagNameContaining{?tagName}
Es wird nach allen Tags gesucht, die den mitgelieferten Substring im Namen haben.