4 Home
Nestisse edited this page 1 year ago

Présentation de l'API

Diagramme de paquetage

@startuml
package Entities{}
package DbContextLib{}
package StubbedContextLib{}
package DbDataManager{
    class InquiryDataService
    class UserDataService
}
package Dto{}
package Model{}
package Shared{
    interface IDataService
}
package API{
    class InquiryDataServiceAPI
    class UserDataServiceAPI
}

DbContextLib ..> Entities
StubbedContextLib ..> DbContextLib
DbDataManager ..> DbContextLib
DbDataManager ..> Dto
DbDataManager ..> Model
DbDataManager ..> Shared
API ..> Shared

UserDataService ..|> IDataService
InquiryDataService ..|> IDataService
@enduml

Explications :
Le service IDataService va déclarer toutes les méthodes qui seront appelées par l'API. C'est à dire que toutes les requêtes que le client pourra faire seront dans le IDataService.
*DataService et *DataServiceAPI vont implémenter le même service.
*DataServiceAPI va appeler les méthodes de *DataService car nous voulons exposer à l'utilisateur seulement les classes du Model.
DbDataManger va donc toujours renvoyer des entities.
API va toujours renvoyer des DTO.
Le client va lui travailler avec le Model.
De cette façon, l'API et les Entities sont indépendantes et nous sommes ouverts à l'extension.