0

我有一个在线服务,我为其提供了一个 RESTful API。这个 API 非常简洁和完整,但我的客户希望通过 SDK 访问它。现在,我的客户在语言方面都有不同的需求:Go、Python、C#,应有尽有。

但是,由于懒惰,我注意到抽象保持不变,而且我在任何地方都有相同的功能。有没有一种方法可以为所有这些 SDK 自动生成代码,前提是设计模型又好又干净?例如,UML 有用吗?或者我只需要创建一个匹配 API 调用的 C 库,然后使用一些 SWIG 魔法来生成绑定?

从技术上讲,我在 API 端使用 Django Rest Framework,但这不应该影响问题。

4

1 回答 1

3

当然,您可以使用 UML 来记录您的 REST API。与 REST 一样,它都是关于资源及其 CRUD 方法的,我建议使用限制性类图作为本文档的基础。

这是一个带有一些想法的示例:

在此处输入图像描述

从这里也可以很容易地创建一个导出器并使用任何技术生成客户端 API。一些 UML 解析和选择性生成。这可能有点耗时,尤其是对于新手来说,但相对简单。

然而,这个简洁的可视化 API 规范对于 API 客户端开发人员来说已经是一个很好的输入。

更新(评论后)

根据具体要求,您可以通过多种方式在 UML 中执行此操作。

我的第一个想法是创建另一个类包(带有原型 REST-client)左右,它将(通过依赖项)连接到可以执行的相应方法。类的 atts 可用于存储附加信息。

或者,您可以使用更具说明性的方法并将休息客户端显示为 UML 参与者。这是它的样子:

在此处输入图像描述

请注意,这些特殊元素(actor 和 rest-client 类)应在模型中的另一个包中明确分离,而不是强制显示在与资源相同的图上。可追溯性矩阵(由一些 UML 工具支持)可能是指定此类补充信息的更好选择。

如果您需要更多信息,请告诉我您希望如何处理身份验证和权限。

于 2014-05-04T09:29:29.413 回答