Class RestClient

java.lang.Object
at.letto.service.rest.RestClient
All Implemented Interfaces:
MicroService
Direct Known Subclasses:
BaseRestClient, RestImageService, RestLocalSetupService, RestLoginService, RestMatheService, RestSetupService

public abstract class RestClient extends Object implements MicroService
Rest-Client für Username-Password Authentification an einem Microservice
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private String
    Basis URI des REST-Services zB.: https://localhost:9091/
    private jakarta.ws.rs.client.Client
    Jersey-Client welcher mit dem Benutzernamen und dem Passwort welches im Constructor angegeben ist beim Systemstart verbunden wurde
    private boolean
    Erzwingt vorherhehendes exteres JSON-Umwandeln mit JSON.objToJson
    private String
    Passwort des Benutzers, welcher mit dem Dienst verbunden ist
    private String
    Benutzername mit dem der Dienst verbunden wurde
  • Constructor Summary

    Constructors
    Constructor
    Description
    RestClient(String baseURI)
    Erzeugt eine REST-Client Verbindung zu einem Microservice ohne Authentifikation zB. für die JWT-Authentifikation
    RestClient(String baseURI, String user, String password)
    Erzeugt eine REST-Client Verbindung zu einem Microservice mit Authentifikation
  • Method Summary

    Modifier and Type
    Method
    Description
    <T> T
    get(String endpoint, Class<T> Class)
    Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
    <T> T
    get(String endpoint, Class<T> Class, LettoToken lettoToken)
    Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
    <T> T
    get(String endpoint, Class<T> Class, String token)
    Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
    <T> T
    get(String endpoint, String dto, Class<T> Class)
    Stellt eine REST-GET-Anfrage an einen Server
    <T> T
    get(String endpoint, String dto, Class<T> Class, LettoToken lettoToken)
    Stellt eine REST-GET-Anfrage an einen Server
    <T> T
    get(String endpoint, String dto, Class<T> Class, String token)
    Stellt eine REST-GET-Anfrage an einen Server
    <T> T
    getDto(String endpoint, Object dto, com.fasterxml.jackson.core.type.TypeReference<T> Class, String token)
     
    static jakarta.ws.rs.client.Client
    Liefert einen Jersey REST-Client ohne ssl-Funktionialität ohne Authentifikation
    static jakarta.ws.rs.client.Client
    getHttpRestClient(String user, String password)
    Liefert einen Jersey REST-Client ohne ssl-Funktionialität
    static jakarta.ws.rs.client.Client
    Liefert einen Jersey REST-Client mit ssl-Funktionialität ohne Authentifikation
    static jakarta.ws.rs.client.Client
    getHttpsRestClient(String user, String password)
    Liefert einen Jersey REST-Client mit ssl-Funktionialität
    static jakarta.ws.rs.client.Client
    getRestClient(String uri, String user, String password)
     
    static <T> T
    jsonTest(String json, com.fasterxml.jackson.core.type.TypeReference<T> Class)
     
    private static String
     
    protected boolean
    ping(String endpoint)
    Schickt einen POST-Ping an das Service mit dem Endpoint info/ping
    protected boolean
    ping(String endpoint, int timeoutMilliseconds)
    Schickt einen POST-Ping an das Service mit dem Endpoint info/ping
    <T> T
    post(String endpoint, Class<T> Class)
    Stellt eine REST-POST-Anfrage an einen Server ohne Anfrageparameter
    <T> T
    post(String endpoint, Class<T> Class, LettoToken lettoToken)
    Stellt eine REST-POST-Anfrage an einen Server ohne Anfrageparameter
    <T> T
    post(String endpoint, Class<T> Class, String token)
    Stellt eine REST-POST-Anfrage an einen Server ohne Anfrageparameter
    <T> T
    post(String endpoint, Object dto, Class<T> Class)
    Stellt eine REST-POST-Anfrage an einen Server
    <T> T
    post(String endpoint, Object dto, Class<T> Class, LettoToken lettoToken)
    Stellt eine REST-POST-Anfrage an einen Server
    <T> T
    post(String endpoint, Object dto, Class<T> Class, String token)
    Stellt eine REST-POST-Anfrage an einen Server
    <T> T
    postDto(String endpoint, Object dto, com.fasterxml.jackson.core.type.TypeReference<T> Class, String token)
     
    <T> T
    postDtoJson(String endpoint, Object dto, com.fasterxml.jackson.core.type.TypeReference<T> Class, String token)
     
    <T> T
    postJson(String endpoint, Object dto, String token, Class<T> Class)
     
    private <T> T
    rest(String endpoint, Object dto, com.fasterxml.jackson.core.type.TypeReference<T> type, boolean post, String token, boolean jsonExternal)
    Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
    <T> T
    rest(String endpoint, Object dto, Class<T> Class, boolean post, String token, boolean jsonExternal)
    Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
    static <T> T
    restGet(String uri, Class<T> Class)
    Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
    static <T> T
    restGet(String uri, String dto, Class<T> Class)
    Stellt eine REST-GET-Anfrage an einen Server
    private static <T> T
    restGetPost(String uri, Object dto, Class<T> Class, boolean post)
    Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
    static <T> T
    restPost(String uri, Class<T> Class)
    Stellt eine REST-POST-Anfrage an einen Server ohne Anfrageparameter
    static <T> T
    restPost(String uri, Object dto, Class<T> Class)
    Stellt eine REST-POST-Anfrage an einen Server
    private void
     
    private static TrustManager[]
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface at.letto.service.interfaces.MicroService

    admininfo, info, ping, version
  • Field Details

    • baseURI

      private String baseURI
      Basis URI des REST-Services zB.: https://localhost:9091/
    • client

      private jakarta.ws.rs.client.Client client
      Jersey-Client welcher mit dem Benutzernamen und dem Passwort welches im Constructor angegeben ist beim Systemstart verbunden wurde
    • user

      private String user
      Benutzername mit dem der Dienst verbunden wurde
    • password

      private String password
      Passwort des Benutzers, welcher mit dem Dienst verbunden ist
    • forceJsonExternal

      private boolean forceJsonExternal
      Erzwingt vorherhehendes exteres JSON-Umwandeln mit JSON.objToJson
  • Constructor Details

    • RestClient

      public RestClient(String baseURI, String user, String password)
      Erzeugt eine REST-Client Verbindung zu einem Microservice mit Authentifikation
      Parameters:
      baseURI - Basis-URI des Microservices zb: https://localhost:9091/
      user - Benutzernamen mit dem die Verbindung standardmäßig aufgebaut wird
      password - Passwort des Benutzers mit dem die Verbindung standardmäßig aufgebaut wird
    • RestClient

      public RestClient(String baseURI)
      Erzeugt eine REST-Client Verbindung zu einem Microservice ohne Authentifikation zB. für die JWT-Authentifikation
      Parameters:
      baseURI - Basis-URI des Microservices zb: https://localhost:9091/
  • Method Details

    • setClient

      private void setClient()
    • getRestClient

      public static jakarta.ws.rs.client.Client getRestClient(String uri, String user, String password)
    • ping

      protected boolean ping(String endpoint, int timeoutMilliseconds)
      Schickt einen POST-Ping an das Service mit dem Endpoint info/ping
      Returns:
      true wenn das Service erreichbar ist
    • ping

      protected boolean ping(String endpoint)
      Schickt einen POST-Ping an das Service mit dem Endpoint info/ping
      Returns:
      true wenn das Service erreichbar ist
    • getDto

      public <T> T getDto(String endpoint, Object dto, com.fasterxml.jackson.core.type.TypeReference<T> Class, String token)
    • postDto

      public <T> T postDto(String endpoint, Object dto, com.fasterxml.jackson.core.type.TypeReference<T> Class, String token)
    • postDtoJson

      public <T> T postDtoJson(String endpoint, Object dto, com.fasterxml.jackson.core.type.TypeReference<T> Class, String token)
    • get

      public <T> T get(String endpoint, Class<T> Class)
      Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      Class - Klasse des Ergebnisses
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • post

      public <T> T post(String endpoint, Class<T> Class)
      Stellt eine REST-POST-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      Class - Klasse des Ergebnisses
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • postJson

      public <T> T postJson(String endpoint, Object dto, String token, Class<T> Class)
    • get

      public <T> T get(String endpoint, String dto, Class<T> Class)
      Stellt eine REST-GET-Anfrage an einen Server
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      dto - Daten die als Parameter übergeben werden als String welcher nach der uri und ? angehängt werden
      Class - Klasse des Ergebnisses
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • post

      public <T> T post(String endpoint, Object dto, Class<T> Class)
      Stellt eine REST-POST-Anfrage an einen Server
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      dto - Daten die als Parameter übergeben werden, null wenn keine Daten
      Class - Klasse des Ergebnisses
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • get

      public <T> T get(String endpoint, Class<T> Class, LettoToken lettoToken)
      Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      Class - Klasse des Ergebnisses
      lettoToken - Token für die Authentifikation
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • get

      public <T> T get(String endpoint, Class<T> Class, String token)
      Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      Class - Klasse des Ergebnisses
      token - Token für die Authentifikation
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • post

      public <T> T post(String endpoint, Class<T> Class, LettoToken lettoToken)
      Stellt eine REST-POST-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      Class - Klasse des Ergebnisses
      lettoToken - Token für die Authentifikation
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • post

      public <T> T post(String endpoint, Class<T> Class, String token)
      Stellt eine REST-POST-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      Class - Klasse des Ergebnisses
      token - Token für die Authentifikation
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • get

      public <T> T get(String endpoint, String dto, Class<T> Class, LettoToken lettoToken)
      Stellt eine REST-GET-Anfrage an einen Server
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      dto - Daten die als Parameter übergeben werden als String welcher nach der uri und ? angehängt werden
      Class - Klasse des Ergebnisses
      lettoToken - Token für die Authentifikation
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • get

      public <T> T get(String endpoint, String dto, Class<T> Class, String token)
      Stellt eine REST-GET-Anfrage an einen Server
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      dto - Daten die als Parameter übergeben werden als String welcher nach der uri und ? angehängt werden
      Class - Klasse des Ergebnisses
      token - Token für die Authentifikation
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • post

      public <T> T post(String endpoint, Object dto, Class<T> Class, LettoToken lettoToken)
      Stellt eine REST-POST-Anfrage an einen Server
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      dto - Daten die als Parameter übergeben werden, null wenn keine Daten
      Class - Klasse des Ergebnisses
      lettoToken - Token für die Authentifikation
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • post

      public <T> T post(String endpoint, Object dto, Class<T> Class, String token)
      Stellt eine REST-POST-Anfrage an einen Server
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      dto - Daten die als Parameter übergeben werden, null wenn keine Daten
      Class - Klasse des Ergebnisses
      token - Token für die Authentifikation
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • rest

      public <T> T rest(String endpoint, Object dto, Class<T> Class, boolean post, String token, boolean jsonExternal)
      Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      dto - Daten die als Parameter übergeben werden, null wenn keine Daten
      Class - Klasse des Ergebnisses
      post - true wenn POST, false bei GET
      token - JWT-Token für die Authentifikation
      jsonExternal - DTO wird mit externem JSONer zu Text umgewandelt (JSON.objToJson)
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • loadGetUri

      private static String loadGetUri(String uri, Object dto)
    • rest

      private <T> T rest(String endpoint, Object dto, com.fasterxml.jackson.core.type.TypeReference<T> type, boolean post, String token, boolean jsonExternal)
      Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      endpoint - Endoint am RestServer
      dto - Daten die als Parameter übergeben werden, null wenn keine Daten
      type - Klasse des Ergebnisses
      post - true wenn POST, false bei GET
      token - JWT-Token für die Authentifikation
      jsonExternal - DTO wird mit externem JSONer zu Text umgewandelt (JSON.objToJson)
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • trustAllCerts

      private static TrustManager[] trustAllCerts()
    • getHttpsRestClient

      public static jakarta.ws.rs.client.Client getHttpsRestClient(String user, String password)
      Liefert einen Jersey REST-Client mit ssl-Funktionialität
      Returns:
      REST-Client
    • getHttpRestClient

      public static jakarta.ws.rs.client.Client getHttpRestClient(String user, String password)
      Liefert einen Jersey REST-Client ohne ssl-Funktionialität
      Returns:
      REST-Client
    • getHttpsRestClient

      public static jakarta.ws.rs.client.Client getHttpsRestClient()
      Liefert einen Jersey REST-Client mit ssl-Funktionialität ohne Authentifikation
      Returns:
      REST-Client
    • getHttpRestClient

      public static jakarta.ws.rs.client.Client getHttpRestClient()
      Liefert einen Jersey REST-Client ohne ssl-Funktionialität ohne Authentifikation
      Returns:
      REST-Client
    • restGet

      public static <T> T restGet(String uri, Class<T> Class)
      Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      uri - Server URI
      Class - Klasse des Ergebnisses
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • restPost

      public static <T> T restPost(String uri, Class<T> Class)
      Stellt eine REST-POST-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      uri - Server URI
      Class - Klasse des Ergebnisses
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • restGet

      public static <T> T restGet(String uri, String dto, Class<T> Class)
      Stellt eine REST-GET-Anfrage an einen Server
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      uri - Server URI
      dto - Daten die als Parameter übergeben werden als String welcher nach der uri und ? angehängt werden
      Class - Klasse des Ergebnisses
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • restPost

      public static <T> T restPost(String uri, Object dto, Class<T> Class)
      Stellt eine REST-POST-Anfrage an einen Server
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      uri - Server URI
      dto - Daten die als Parameter übergeben werden, null wenn keine Daten
      Class - Klasse des Ergebnisses
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • restGetPost

      private static <T> T restGetPost(String uri, Object dto, Class<T> Class, boolean post)
      Stellt eine REST-GET-Anfrage an einen Server ohne Anfrageparameter
      Type Parameters:
      T - Type der Klasse des Ergebnisses
      Parameters:
      uri - Server URI
      dto - Daten die als Parameter übergeben werden, null wenn keine Daten
      Class - Klasse des Ergebnisses
      post - true wenn POST, false bei GET
      Returns:
      Ergebnis der REST-Anfrage als Objekt. Im Fehlerfall null.
    • jsonTest

      public static <T> T jsonTest(String json, com.fasterxml.jackson.core.type.TypeReference<T> Class) throws Exception
      Throws:
      Exception