Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:ffit:3-jahr:java:learningunits:lu08:a [2025/10/27 02:53] apeterde:modul:ffit:3-jahr:java:learningunits:lu08:a [2025/10/28 01:33] (aktuell) apeter
Zeile 1: Zeile 1:
-====== LU08a - Schnittstellendokumentation ======+====== LU08a - Vereinfachungen ======
  
-Da in grösseren Entwicklungsteams oft unterschiedliche Leute an Front- und Backend arbeitenist eine entsprechende Dokumentation der Schnittstellen (z. B. REST APIs) unabdingbar. +Nachfolgend werden einige Bibliotheken gezeigtum das Schreiben von Code zu vereinfachen.
-Dadurch wird sichergestellt, dass die Schnittstellen seitens Backend korrekt implementiert und seitens Frontend korrekt verwendet werden.+
  
 +==== Project Lombok ==== 
  
-==== OpenAPI ====  +Project Lombok hilft Boilerplate-Code in Datenklassen auf ein Minimum zu reduzieren.
-OpenAPI (https://www.openapis.org/) ist ein gebräuchlicher Standard, um APIs in einer JSON- oder YAML-Datei zu spezifizieren+
  
-Machen Sie im Accounting-App-Projekt einen cherry-pick auf ''TODO'' um im Verzeichnis ''documentation/'' die Datei ''openapi.yaml'' zu erhalten.+^ Klassisch ^ Lombok ^ 
 +| <WRAP> 
 +<code java> 
 +public class Person {
  
-==== Swagger ==== +    private Long id; 
-Swagger (https://swagger.io/) umfasst einige Tools rund um OpenAPI. +    private String firstName; 
-Beispiele:+    private String lastName; 
 +    private int age;
  
-^ Name ^ Verwendungszweck ^ +    // Standard-Konstruktor 
-| Swagger Editor | Bearbeiten/Validieren von OpenAPI-Dateien |  +    public Person() { 
-| Swagger UI | Interaktive API-Dokumentation im Browser |  +    }
-| Swagger Codegen / OpenAPI Generator | Generieren von  Client- oder Server-Code aus OpenAPI-Dateien | +
  
-Nutzen Sie den Swagger Editor (https://editor.swagger.io/) um die definierten APIs in ''openapi.yaml'' anzusehen und zu verstehen.+    // Konstruktor mit allen Feldern 
 +    public Person(Long id, String firstName, String lastName, int age) { 
 +        this.id = id; 
 +        this.firstName = firstName; 
 +        this.lastName = lastName; 
 +        this.age = age; 
 +    }
  
-Theoretisch könnten Sie auch das Swagger-UI (https://swagger.io/tools/swagger-ui/benutzen, dieses müssten Sie aber erst herunterladen.+    // Getter und Setter 
 +    public Long getId(
 +        return id; 
 +    }
  
-Builden Sie Ihr Projekt neu. Falls Sie dafür die IDE benutzen, müssen Sie sicherstellen, dass die IDE die Gradle-Tasks korrekt ausführt.+    public void setId(Long id) { 
 +        this.id = id; 
 +    }
  
-Der neue Task ''openApiGenerate'' in der Datei ''build.gradle'' erstellt nun automatisch bei jedem Build die entsprechenden Interfaces für die APIs.+    public String getFirstName() { 
 +        return firstName; 
 +    }
  
-  - Prüfen Sie, ob in ''build/generated/openapi/src/main/java/ch/bzz/generated/api/'' und in ''build/generated/openapi/src/main/java/ch/bzz/generated/model/'' korrekterweise Klassen erstellt wurden+    public void setFirstName(String firstName) { 
-  - Fügen Sie unter ''src/main/java/ch/bzz/controller'' die Klassen ''AccountApiController.java'', ''BookingApiController.java'' und ''ProjectApiController.java'' hinzu und lassen Sie die Klassen die entprechenden Interfaces implementieren.+        this.firstName = firstName; 
 +    }
  
 +    public String getLastName() {
 +        return lastName;
 +    }
 +
 +    public void setLastName(String lastName) {
 +        this.lastName = lastName;
 +    }
 +
 +    public int getAge() {
 +        return age;
 +    }
 +
 +    public void setAge(int age) {
 +        this.age = age;
 +    }
 +}
 +</code> 
 +</WRAP> | <WRAP>
 <code java> <code java>
-@RestController +import lombok.Getter; 
-public class ProjectApiController implements ProjectApi +import lombok.Setter; 
-    ....+import lombok.NoArgsConstructor; 
 +import lombok.AllArgsConstructor; 
 + 
 + 
 +@Getter                 // generiert Getter 
 +@Setter                 // generiert Setter 
 +@NoArgsConstructor      // generiert Standard-Konstruktor 
 +@AllArgsConstructor     // generiert Konstruktor mit allen Feldern 
 +public class Person 
 +    private Long id; 
 +    private String firstName; 
 +    private String lastName; 
 +    private int age;
 } }
 </code> </code>
 +</WRAP> |
  
 +Mit ''@Data'' kann man sogar Getter, Setter, toString, equals und hashCode generieren lassen.
  
-Man kann auch mit der OpenAPI-Datei und Postman die APIs testen. +Mehr dazu auf https://www.cegos-integrata.de/blog/it-blog/programmiersprachen-blog/project-lombok-java-klassen-effizient-gestalten
  
  • de/modul/ffit/3-jahr/java/learningunits/lu08/a.1761530019.txt.gz
  • Zuletzt geändert: 2025/10/27 02:53
  • von apeter