如何组织API?
我正在设计一个API,我希望它是简单易用的。所以,如果我有客户、对账单和付款。拥有诸如Customer、CustomerHandler、Statement、StatementHandler、Payment、PaymentHandler之类的对象有意义吗?这样,当开发人员想要对客户做一些事情时,他/她知道要创建一个CustomerHandler,然后希望对客户执行的所有可能的功能都在处理程序中 方法如下:如何组织API?,api,architecture,Api,Architecture,我正在设计一个API,我希望它是简单易用的。所以,如果我有客户、对账单和付款。拥有诸如Customer、CustomerHandler、Statement、StatementHandler、Payment、PaymentHandler之类的对象有意义吗?这样,当开发人员想要对客户做一些事情时,他/她知道要创建一个CustomerHandler,然后希望对客户执行的所有可能的功能都在处理程序中 方法如下: 客户管理员: AddCustomer(客户) GetCustomer(customerI
- 客户管理员:
- AddCustomer(客户)
- GetCustomer(customerID)
- GetCustomerCount()
- 语句处理程序:
- AddStatement(customerID)
- GetStatement(语句ID)
- GetStatementCount(customerID)
- PaymentHandler:
- GetPaymentsByCustomer(customerID)
- GetPayment(paymentID)
- GetPaymentCountByCustomer(customerID)
如果您有一个假设的方法,比如GetPayments(customerId,workerId),可以为客户和工人获得付款,那么它也可以消除混淆。根据你的同事的建议,不清楚这种方法将走向何方,因为它涉及付款、客户和员工。按返回类型分类几乎总是很清楚的,因为函数只返回一件事。如果您正在设计一个API,那么您可以尝试从预期用户的角度编写一些模型。实现一些用例,即使只是在白板上,看看哪种方法更有价值
在您的支付示例中,工人和客户都可以实现支付接口。如果您后来不得不添加一个可以“付费”的对象,您只需让它实现相同的接口即可。如果您有一个支付处理程序,并且需要添加一个可以支付的新类型的东西,那么您必须通过添加一个新方法来更改处理程序。随着时间的推移,我想这会变得很麻烦。当然,您可以将两者结合使用,并使用一个handler实用程序作为支付系统的前端。您基本上描述了两种数据访问方式(模式):
- 活动记录-
- 数据映射器-
活动记录非常流行,因为它更简单。自己决定什么最适合你的需要。哇,这真让我难以接受。我想我得去拿那本书。请别担心。这不是一门火箭科学。这是一本非常好写的书,很容易阅读——特别是如果你已经做了一些工作的话。