java - 关于将 HttpRequest 和 HttpResponse 传递给服务层的想法?

标签 java architecture servlets paypal-ipn

我有一个 CommerceService 模块来帮助实现常见的订单处理功能,其中包括通过 Authorize.net、Paypal 和 Google Checkout 等提供商进行的付款授权之类的事情。它提供了一个简单的接口(interface),例如 placeOrder(Order) 并完成了繁重的工作。

本地支付提供商的事情很简单,但是 Paypal 和 Google 提供远程支付服务,因此以 Paypal 为例,用户可以离开您的网站,在那里付款,然后 Paypal 将发送一个 Http 通知以连接到您的订单流程.

我的问题是处理这些通知。理想情况下,将 HttpRequest 对象传递到服务层并让服务使用 handleRemoteOrder(Request, Response) 来完成订单是最简单的,而不是强制前端担心这些。但是将请求和响应传递给服务层在直觉上似乎是错误的。

我考虑过将请求参数提取到 Map 并简单地传递它,但是 google checkout java sdk 明确地处理请求和响应对象,因此不使用 sdk 会很麻烦。

将 HttpRequest 传到这么远的地方是否令人不悦?如果是这样,是否应该有前端逻辑来处理这个问题?还是这是多余的担心,我不应该想那么多?

最佳答案

HttpRequestHttpResponse 包装在实现接口(interface)的类中,并使服务层依赖于接口(interface)。对于 Google 以外的其他服务,您可以通过请求参数传递 map ,对于 Google 则传递包装器实现。无论如何,服务层不会知道背后发生了什么。

关于java - 关于将 HttpRequest 和 HttpResponse 传递给服务层的想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6625155/

相关文章:

java - 错误-java.lang.ClassNotFoundException : oracle. jdbc.driver.OracleDriver

java - 如何过滤ArrayList中的空值

php - 接口(interface)如何用于松散耦合?

android - 将使用哪种类型的客户端/服务器架构?

asp.net-mvc - ASP MVC 应用程序的存储库模式设计

java - 如何在 servlet 中调用 DAO 方法来提取查询结果

java - 带有 Java 13.0.1 的 RaspberryPi 4

Java RMI第一次调用很慢

java - 访问 ArrayList 内部的 ArrayList 时出现 ArrayOutOfBoundsException

java.io.IOException : Server returned HTTP response code: 500 for URL: https://hostname:port/xxx. 做