对于内部客户端,OpenAPI 客户端代码生成允许 2 个用例:
服务客户端:生成的客户端代码与特定服务的 openAPI 绑定,涵盖该服务的所有 API,并由处理服务代码的同一开发人员控制和维护(根据生成的代码的需要),并且没有代码重复
依赖于使用情况的客户端:每个用例将根据该特定用例使用的端点生成自己的客户端。您获得较小的客户端,仅覆盖正在使用的端点 - 负责维护这些客户端的人员与负责特定用例的人员是同一个人,并且不同生成的客户端之间可能存在代码重复
如果我比较这两个选项,我会看到以下内容:
+-----------------------+------------------------------+------------------------+
| Criteria | service based clients | use-case based clients |
+-----------------------+------------------------------+------------------------+
| Ownership | Service maintainers | use-case maintainers |
| Code duplication | No duplication | a lot of duplications |
| Clients sependancy | Dependancy exists | No dependancy |
| Client code stability | When upgrading client | When updating client |
| Base url | Single per client | Per endpoint (group) …Run Code Online (Sandbox Code Playgroud) 以下是显示奇怪性的示例代码:(基于注释修复的代码)
public class C{}
public static class E {
public static void Foo(this C o) { }
}
class D:C {
void test() {
// Foo(); // will not compile
this.Foo(); // compile ok
}
}
Run Code Online (Sandbox Code Playgroud)
在自然场景中,C类将是一个我无法访问其源代码的类
任何人都知道为什么这个奇怪的要求使用this关键字?