-
Martin Vogel authoredMartin Vogel authored
README.md 1.81 KiB
API Module
The API-module contains interfaces and domain model value classes that provide the basic functionality to build an sdk-client.
The SDk is set up as a maven multi module to separate the (internal) API from implementation details
API Module
The api module consists of all domain model classes and (api-) public interfaces needed to build an sdk-client
Client Module
Factories and Helper to create Sender and Subscriber. It acts as the actual user client.
Impl Module
Interface implementations
Service Architecture
classDiagram
class CryptoService{
+ decryptString
+ decryptBytes
+ encryptString
+ encryptBytes
}
class CertificateValidator{
+ validatePublicKey
}
class MetadataValidator{
+ validateMetadataSchema
+ validateMetadataHashValues
}
class MetadataService{
+ createMetadata
}
class OAuthService{
+ authenticate
}
class Sender {
+ retrieveOAuthToken
+ validatePublicKey
+ encryptSubmissionData
+ encryptAttachment
+ MetadataService
+ createMetadata
}
class Subscriber {
+ retrieveOAuthToken
+ decryptSubmissionData
+ decryptAttachment
+ validateMetadataSchema
+ validateMetadataHashValues
}
class SubscriberClient{
Subscriber
}
class SenderClient{
Sender
}
class AbstractClient {
SdkModule (Guice DI)
}
AbstractClient <.. SenderClient : IsA
AbstractClient <.. SubscriberClient : IsA
SenderClient ..> Sender : Uses
SubscriberClient ..> Subscriber : Uses
Sender ..> CertificateValidator : Uses
Sender ..> MetadataService : Uses
Sender ..> OAuthService : Uses
Sender ..> CryptoService : Uses
Subscriber ..> OAuthService : Uses
Subscriber ..> CryptoService : Uses
Subscriber ..> MetadataValidator : Uses