关于Sharp的约束我试着理解一下,语言方面的约束老师已经说了两点:一是Drawing类通过接口来引用Sharp类以增加通用性;二是考虑到 Drawing 类的 List 和 Get 返回的 Shape 实例,会被直接作为 RESTful API 的结果返回。所以,Shape 的 json.Marshal 结果必须符合 API 层的预期。
除了语言方面的约束外还存在语意方面的约束,一方面RESTful要求对资源的操作只能是POST、GET、PUT、DELETE;另一方面考虑到网络可能出现的故障,接口实现要幂等,支持错误或超时的重试。