You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
3.1 KiB
73 lines
3.1 KiB
@startuml |
|
title "USECASE: teh.storage" |
|
allowmixing |
|
left to right direction |
|
' пользователи |
|
actor "Пользователь" as user |
|
actor "Стороний сервис" as service |
|
|
|
' возможности использования |
|
usecase "получение сведений о корневой директории" as getRoot |
|
usecase "Загрузка файла на сервер" as upload |
|
usecase "Загрузка файлов на сервер пакетом" as uploads |
|
usecase "Скачивание файла с сервера" as download |
|
usecase "Удаление файла с сервера" as delete |
|
usecase "Просмотр/получение перечня файлов на сервере" as list |
|
usecase "Просмотр/получение сведений о файле" as fileInfo |
|
usecase "Настройка параметров просмотра файла (xlsx)" as setParams |
|
usecase "Просмотр/получение содержимого файла (xlsx)" as viewXlsx |
|
|
|
' FACE |
|
user --> upload |
|
user --> uploads |
|
user --> download |
|
user --> delete |
|
user --> list |
|
user --> fileInfo |
|
user --> setParams |
|
user --> viewXlsx |
|
|
|
' REST API |
|
upload <-- service : "POST /api/v1/files/store" |
|
uploads <-- service : "POST /api/v1/files/store-multiple" |
|
download <-- service : "GET /api/v1/files/download" |
|
delete <-- service : "DELETE /api/v1/files/delete" |
|
list <-- service : "GET /api/v1/files" |
|
fileInfo <-- service : "получаем с пусой страницей xlsxPage" |
|
viewXlsx <-- service : "GET /api/v1/files/xlsx" |
|
getRoot <-- service : "GET /api/v1/root" |
|
|
|
json "Сведения о файле" as fileMetadata { |
|
"name":"наименование файла", |
|
"extension":["xlsx", "pdf", "..."], |
|
"rootPath": "/app/storage/uploads", |
|
"relativePath":"/filename.xlsx", |
|
"absolutePath":"/app/storage/uploads/filename.xlsx", |
|
"size":"размер файла в байтах", |
|
"createdDate":"время создания файла", |
|
"lastModifiedDate":"время последнего изменения файла", |
|
"owner":"пользователь - владелец файла", |
|
"type": "файл или директория", |
|
"permissions": "права, установленные файлу на сервере" |
|
} |
|
|
|
json "Содержимое файла" as page { |
|
"content":"выборка данных xlsx", |
|
"metadata":"FileMetadata", |
|
"pageSize": "размер страницы", |
|
"pageNumber": "номер страницы", |
|
"offset": "смещение", |
|
"headerLine": "номер строки с заголовками", |
|
"last": "является ли последней страницей", |
|
"first": "является ли первой страницей", |
|
"hasNext": "имеется ли следующая страница", |
|
"hasPrevious": "имеется ли предыдущая страница", |
|
"totalLines": "всего строк в xlsx-файле", |
|
"totalColumns": "всего столбцов", |
|
"totalPages": "всего страниц" |
|
} |
|
|
|
fileInfo --{ fileMetadata |
|
viewXlsx --{ page |
|
|
|
@enduml
|
|
|