做一手房用什么网站好,网站模板免费下载php,十大暗网搜索引擎,百度点击率排名有效果吗目录
前言
需求场景
用例图
类图
活动图
时序图 前言
在软件开发的生命周期中#xff0c;需要先进行设计#xff0c;最后才是进行具体的编码和测试。设计时就需要画各种 UML 图#xff0c;有专业的 UML 画图软件#xff0c;也有很多在线的 UML 画图网站可以来画图需要先进行设计最后才是进行具体的编码和测试。设计时就需要画各种 UML 图有专业的 UML 画图软件也有很多在线的 UML 画图网站可以来画图但是这些一般都是可视化界面通过鼠标拖拽各种组件来画图在画图时需要不停在键鼠直接来回切换——鼠标拖拽好组件再用键盘打字补充说明实际使用体验个人感觉非常难受。
PlantUML 是一个多功能组件可快速、直接地创建图表。用户可以使用简单直观的语言起草各种图表。使用 PlantUML 就可以使用简单的文字描述来画 UML 图了。
本文演示用 PlantUML 设计一个模块使用 PlantUML 来画用例图类图活动图时序图。
具体的语法可以直接参考官方文档
使用简单的文字描述画UML图的开源工具。 (plantuml.com)https://plantuml.com/zh/
需求场景
开发一个 api 调用服务让用户自定义要调用 api 的各种配置例如 api 的 url 地址请求方式query 参数名header 参数名body 参数名表单或者jsonapi 返参等等配置完成后即可提供给其他系统模块进行调用。
api 提供一个调用的接口其他系统模块调用时按照 api 配置的输入参数名称传入对应的输入参数值返回 api 调用模块配置的返参。
调用接口的整体逻辑可以抽象成以下几个步骤
获取 api 配置信息构造请求参数构造请求头构造请求体校验必填字段调用 api校验 api 返回值返回 api 返回值
梳理好需求并将业务逻辑分解后开始设计 UML。
用例图
PlantUML startuml
https://plantuml.com/use-case-diagrampackage API模块 {(调用 API)(配置 API)
}:系统模块: -- (调用 API)
:配置人员: -- (配置 API)enduml 类图 startuml
https://plantuml.com/class-diagramclass Service {- apiInfoMapper : ApiInfoMapper- apiQueryMapper : ApiQueryMapper- apiBodyMapper : ApiBodyMapper- apiResponseMapper : ApiResponseMapper call(Input) : Object
}interface ApiInfoMapper {}
interface ApiQueryMapper {}
interface ApiBodyMapper {}
interface ApiResponseMapper {}class ApiDO {- input : Input- field : Object- result : Object {static} build(Input) : ApiDO getBaseInfo(ApiInfoMapper) : ApiDO buildQuery() : ApiDO buildHeader() : ApiDO buildBody() : ApiDO checkRequiredFields(ApiQueryMapper, ApiBodyMapper) : ApiDO invoke() : ApiDO checkReturnResult(ApiResponseMapper) : ApiDO getResult() : Object
}note left of ApiDO::input前端入参
end note
note left of ApiDO::field业务处理过程中的中间变量
end note
note left of ApiDO::result业务处理后的返回结果
end noteclass Input {- apiId : String- apiQuery : MapString, Object- apiHeader : MapString, Object- apiBody : MapString, Object
}Service 1 -- 1 ApiInfoMapper
Service 1 -- 1 ApiQueryMapper
Service 1 -- 1 ApiBodyMapper
Service 1 -- 1 ApiResponseMapper
Service .. Input
Service .. ApiDOInput 1 -- 1 ApiDO
ApiInfoMapper .. ApiDO
ApiQueryMapper .. ApiDO
ApiBodyMapper .. ApiDO
ApiResponseMapper .. ApiDOenduml 活动图 startuml
https://plantuml.com/activity-diagram-betastart
:获取 api 基本信息;
if (api 是否存在?) then (true):构造请求参数;:构造请求头;:构造请求体;if (校验必填字段?) then (true):调用 api;if (校验 api 返回值?) then (true):返回 api 返回值;else (false):抛出错误信息;stop;endifelse (false):抛出错误信息;stopendif
else (false):抛出错误信息;stop
endif
stop;enduml时序图 startuml
https://plantuml.com/sequence-diagramparticipant Client
participant Controller
participant Service
participant ApiDO
participant Mapper
participant 第三方接口Client - Controller : 发起 api 调用请求Controller - Controller: 校验入参Controller - Service : 委托业务层处理Service - ApiDO **: buildService - ApiDO : 获取 api 基本信息
ApiDO - Mapper : 查询 api 基本信息
return api 基本信息
Service -- ApiDO : ApiDO
Service - ApiDO : 构造请求参数
Service -- ApiDO : ApiDO
Service - ApiDO : 构造请求头
Service -- ApiDO : ApiDO
Service - ApiDO : 构造请求体
Service -- ApiDO : ApiDO
Service - ApiDO : 校验必填字段
ApiDO - Mapper : 查询 query body 配置
return query body 配置
Service -- ApiDO : ApiDO
Service - ApiDO : 调用 api
ApiDO - 第三方接口 : http 请求
return 接口返回值
Service -- ApiDO : ApiDO
Service - ApiDO : 校验返回值
ApiDO - Mapper : 查询返回值配置
return 返回值配置
Service -- ApiDO : ApiDO
Service - ApiDO: 获取调用结果
Service -- ApiDO -- : 调用结果Service -- Controller -- : 调用结果Controller -- Client -- : 调用结果enduml