向 JSON API 发送请求和使用 SMTP 服务器的序列图?
Sequence diagram for sending requests to JSON API and for using an SMTP Server?
我开发了一个 Web 应用程序,可以将 HTTP 请求发送到 JSON API 并从中获取响应。它还通过 SMTP 服务器向用户发送电子邮件。我一直在研究如何在我的序列图中对这些场景进行建模。
编辑:
登录顺序如下:
1-用户在视图中输入了他的登录名和密码
2-视图将输入的数据发送给控制器
3-控制器调用位于WebService中的函数class
4- 函数创建登录请求模型的实例(登录请求模型是一个 class,与将要发送的 JSON 数据具有相同的格式)
5- 该函数将创建的实例序列化为 JSON 并通过 HTTP 将其发送到远程 Web 服务
6- 函数读取响应流并将其反序列化为响应的新实例 class
7-然后将创建的实例发送回控制器
8-控制器在收到的实例上运行测试以查看用户是否提供了正确的凭据
9-根据测试结果,控制器将用户重定向到登陆页面(如果他输入了正确的凭据)或在索引页面中发送一条消息,指示凭据错误
在这种情况下,我的序列图中的参与者是什么,我应该在其中添加什么,我应该留下哪些未描述的内容?
您的初始图表是一个好的开始。
我在这里用黑色的英文注释(这样每个人都可以从中受益),你的编号序列列表的参考,以及洋红色的一些变化。我还添加了 3 个圆圈来突出一些一般性评论:
备注 1:我不清楚第一条消息是否是同步的(普通箭头)。您的用户 class 真的在等待 return 吗?我认为这可能是异步的,返回的最终消息不一定是 return message(虚线)。
备注 2:请求 template/model 上的传入消息 4 是异步的。所以我希望答案也是异步消息(未加点)。
备注 3:在这里(以及其他几个场合),您收到了 "create" message. If you create a new object, you'd better start the lifeline there, to show the instantiation。
备注:您可以通过使用 alt
区域来减少 show alternative 交互(在序列的末尾)。
最后的评论:您担心不同类型的传输(即 JSON 与 SMTP)。 UML 图不显示消息的格式。因此,如果流程相同但只是协议发生变化,您可以保留它(并最终进行注释以显示其 JSON 或 SMTP)。如果序列中有不同类型的交互,则可以使用 alt
。
我开发了一个 Web 应用程序,可以将 HTTP 请求发送到 JSON API 并从中获取响应。它还通过 SMTP 服务器向用户发送电子邮件。我一直在研究如何在我的序列图中对这些场景进行建模。
编辑:
登录顺序如下:
1-用户在视图中输入了他的登录名和密码
2-视图将输入的数据发送给控制器
3-控制器调用位于WebService中的函数class
4- 函数创建登录请求模型的实例(登录请求模型是一个 class,与将要发送的 JSON 数据具有相同的格式)
5- 该函数将创建的实例序列化为 JSON 并通过 HTTP 将其发送到远程 Web 服务
6- 函数读取响应流并将其反序列化为响应的新实例 class
7-然后将创建的实例发送回控制器
8-控制器在收到的实例上运行测试以查看用户是否提供了正确的凭据
9-根据测试结果,控制器将用户重定向到登陆页面(如果他输入了正确的凭据)或在索引页面中发送一条消息,指示凭据错误
在这种情况下,我的序列图中的参与者是什么,我应该在其中添加什么,我应该留下哪些未描述的内容?
您的初始图表是一个好的开始。
我在这里用黑色的英文注释(这样每个人都可以从中受益),你的编号序列列表的参考,以及洋红色的一些变化。我还添加了 3 个圆圈来突出一些一般性评论:
备注 1:我不清楚第一条消息是否是同步的(普通箭头)。您的用户 class 真的在等待 return 吗?我认为这可能是异步的,返回的最终消息不一定是 return message(虚线)。
备注 2:请求 template/model 上的传入消息 4 是异步的。所以我希望答案也是异步消息(未加点)。
备注 3:在这里(以及其他几个场合),您收到了 "create" message. If you create a new object, you'd better start the lifeline there, to show the instantiation。
备注:您可以通过使用 alt
区域来减少 show alternative 交互(在序列的末尾)。
最后的评论:您担心不同类型的传输(即 JSON 与 SMTP)。 UML 图不显示消息的格式。因此,如果流程相同但只是协议发生变化,您可以保留它(并最终进行注释以显示其 JSON 或 SMTP)。如果序列中有不同类型的交互,则可以使用 alt
。