根据路由逻辑将请求传递给不同的类

时间:2020-04-03 10:29:34

标签: python

这与Pass request to different class based on condition Python非常相似,但是我决定创建另一个问题,因为该问题的答案是正确的,但不适用于我的用例。我的问题措辞不佳,而且改变了。

我正在设计一种API,用于处理不同类型的车辆,例如汽车,公共汽车和厢式货车。有一个端点POST /vehicle,它将采用已定义的主体。

{
'registration': 'str',
'date_of_purchase': 'datetime str',
'vehicle_type': 'car'
...
}

API入口点进入Vehicles.py,它执行一些逻辑。

我们要做的第一件事是基于vehicle_type加载对象。

if body[vehicle_type] == 'car':
   passed_in_vehicle = Car(body)
elif body['vehicle_type'] == 'bus':
   passed_in_vehicle = Bus(body)
...

此后,我们调用一个名为get_manufacturer()的方法,该方法将使用注册号调用第三方服务,并获取车辆制造商的名称。然后,我们希望将其路由到正确的制造商类别。

在python程序中,有多个类,包括:

  • ford_service.py
  • jaguar_service.py
  • bmw_service.py

每个类都具有相同的基本方法集。

  • update_vehicle_specs
  • register_vehicle

此刻我在Vehicles.py的底部

if manufacturer = 'BMW':
   bmw_service = BMWService()
   bmw_service.register_vehicle(passed_in_vehicle)
elif manufacturer == 'FORD':
   fordService = FordService()
   fordService.register_vehicle(passed_in_vehicle)
...

但是,这不能扩展。根据条件路由到特定类的正确解决方案是什么?

0 个答案:

没有答案