Giter Site home page Giter Site logo

customer-rest-assignment's Introduction

customer-management-service

Dieses Projekt dient als Unterstützung für den Workshop am 21.06. bzw. 22.06.2021.

Der Workshop setzt sich aus 7 Kapiteln (Teil 2 bis 7) zusammen. Jeder Teil wird zunächst einzeln vorgestellt und soll dann hier im Rahmen umgesetzt werden.

Technische Voraussetzungen

  • Java 11
  • Maven 3.x
  • GIT
  • Docker + Docker Compose
$ java --version
openjdk 11.0.11 2021-04-20
OpenJDK Runtime Environment GraalVM CE 21.1.0 (build 11.0.11+8-jvmci-21.1-b05)
OpenJDK 64-Bit Server VM GraalVM CE 21.1.0 (build 11.0.11+8-jvmci-21.1-b05, mixed mode, sharing)

$ mvn --version
Maven home: /usr/local/Cellar/maven/3.8.1/libexec
Java version: 11.0.11, vendor: GraalVM Community, runtime: /Library/Java/JavaVirtualMachines/graalvm-ce-java11-21.1.0/Contents/Home
Default locale: de_DE, platform encoding: UTF-8
OS name: "mac os x", version: "11.4", arch: "x86_64", family: "mac"

$ git --version
git version 2.30.1 (Apple Git-130)

$ docker version
Client:
 Cloud integration: 1.0.17
 Version:           20.10.7
 ...
Server: Docker Engine - Community
 Engine:
  Version:          20.10.7
  ...

Durchführung

  1. Jedes Kapitel wird zunächst in dem Workshop einzeln vorgestellt
  2. Jede:r Teilnehmer:in (oder eine Gruppe) entwickelt im eigenen Branch eine Lösung für das jeweilige Kapitel
  3. Ein:e Teilnehmer:in (oder eine Gruppe) stellt eine Lösung vor
  4. Ggf. wird die Musterlösung vorgestellt
  5. Das nächste Kapitel wird vorgestellt

Aufgabe

Aufgabe

Erstelle die Anwendung customer-management-service. Ein Customer enthält dabei die Attribute id, name, company, createDate und lastUpdateDate.

Es muss möglich sein, über REST einen Customer anzulegen und zu löschen. Die Attribute name und company sollen änderbar sein. Die Datumswerte werden automatisch bestimmt.

Die REST-Schnittstelle soll über einen Keycloak abgesichert sein. Dieser stellt die Rolle user und einen Nutzer szut bereit.

Die Daten liegen persitent in einer PostgreSQL.

Alle Komponenten (service, Keycloak und PostgreSQL) können über ein Docker Compose gestartet und gestoppt werden.

Musterlösungen

Die Musterlösungen stehen jeweils als eigener Branch (muster-loesung-kapitel-x) bereit.

Bauen und Testen

$ git clone https://github.com/FA-Team-SZUT/customer-management-service
$ mvn clean package

# run with spring boot
$ mvn spring-boot:run

# run with plain java
$ java -jar target/customer*.jar

# HTTP request examples
# Get all customers
$ curl -i -H "Accept: application/json" --request GET http://localhost:8083/api/

# Post a new customer
$ curl -i -H "Content-Type: application/json" --request POST --data '{"name":"Lars", "company":"szut"}}' http://localhost:8083/api/

# Read a specific customer     
$ curl -i -H "Accept: application/json" --request GET http://localhost:8083/api/{customer-id}   

# Update a specific customer    
$ curl -i -H "Content-Type: application/json" "Accept: application/json" --request PUT --data '{"name":"Lars", "company":"neusta"}}' http://localhost:8083/api/{customer-id}

# Delete a specific tweet
$ curl -i -H "Accept: application/json" --request DELETE http://localhost:8083/api/{customer-id} 

customer-rest-assignment's People

Contributors

berndheidemann avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.