gpt4 book ai didi

api - 如何组织API?

转载 作者:行者123 更新时间:2023-12-01 13:08:55 25 4
gpt4 key购买 nike

我正在设计一个 API,我希望它易于使用。所以,如果我有客户、报表和付款。拥有以下对象是否有意义:Customer、CustomerHandler、Statement、StatementHandler、Payment、PaymentHandler?这样,当开发人员想要对客户做某事时,他/她知道创建一个 CustomerHandler,然后希望对客户执行的所有可能功能都在处理程序中。

方法如:

  • 客户处理程序:

    • 添加客户(客户)
    • 获取客户(客户 ID)
    • GetCustomerCount()
  • 语句处理程序:

    • 添加语句(客户 ID)
    • 获取语句(语句 ID)
    • GetStatementCount(客户ID)
  • 支付处理程序:

    • GetPaymentsByCustomer(客户 ID)
    • 获取付款(付款ID)
    • GetPaymentCountByCustomer(客户 ID)

通过这种方式,如果开发人员想要接收付款,他/她知道可以转到 PaymentHandler。我的同事认为像 GetPayments(customerID) 这样的函数属于管理客户的类。所以,它就像 Customer.GetPayments() AS Payments。但是如果我有一些其他实体,比如 Worker,就会有 Worker.GetPayments() AS Payments。所以,我看到了这两种方法的逻辑。第一个将事物组合在一起,这样无论付款来自谁,您都可以通过具有 GetPaymentsByCustomer(CustomerID) 和 GetPaymentsByWorker(WorkerID) 等函数从一个类中获得所有付款。这样一来,人们就不必为了获得付款而偶然发现不同的处理程序或管理器对象。这两种方法对我来说都有意义,你呢?或者,我们都离开了,有更好的方法吗?提前致谢!

最佳答案

如果您正在设计 API,那么也许您可以尝试从目标用户的角度编写一些模型。实现一些用例,即使只是在白板上,看看哪种方法更有值(value)。

在您的付款示例中,工作人员和客户都可以实现一个 Payable 接口(interface)。如果您稍后必须添加一个可以“付费”的对象,您只需让它实现相同的接口(interface)即可。如果你有一个支付处理程序并且需要添加一种可以支付的新类型的东西,你将不得不通过添加一个新方法来更改处理程序。我想随着时间的推移,这可能会变得很麻烦。您当然可以结合使用这两者,并拥有一个处理程序实用程序作为您的支付系统的前端。

关于api - 如何组织API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/627446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com