Flask重定向服务分层路由

时间:2019-05-30 19:21:05

标签: python python-3.x flask python-3.7 flask-restful

我使用Flask库在Python中运行了一组微服务。 我有一个国家/地区服务,可以通过参数接收子字符串,然后返回包含该字符串的国家/地区。 我有一个州服务,可以接收国家参数和州的子字符串,然后从那个国家返回与该子字符串匹配的州。 我有一个城市服务,该服务通过参数接收一个国家,一个州和一个子字符串,并从该国家和那个州返回与该链相重合的城市。 通过以下方式调用服务:

  

针对国家/地区

http://127.0.0.1:5100/GeographicAddressManagement/Countries?country=AR

  

通过参数传递国家和州的子字符串

http://127.0.0.1:5102/GeographicAddressManagement/State?country=ARGENTINA&stateOrProvince=CO

  

通过参数传递国家,州和城市的子字符串

http://127.0.0.1:5102/GeographicAddressManagement/Cities?country=ARGENTINA&stateOrProvince=CORDOBA&city=C

但是现在,他们要求我将服务调整为标准,并且希望将其作为一项单独的服务,如果可以的话,它允许进行分层搜索。 例如,如果我仅按国家/地区搜索,则参数应为

http://127.0.0.1:5100/GeographicAddressManagement/AREA?country=AR

如果我要在特定国家/地区中寻找一个州, http://127.0.0.1:5100/GeographicAddressManagement/ARGENTINA/stateOrProvince=CO

如果来自城市: http://127.0.0.1:5100/GeographicAddressManagement/ARGENTINA/CORDOBA/city=C

他们要我遵循的标准是:

---- / GeographicAddressManagement /国家/地区 查找具有特定字符串的所有国家/地区

---- / GeographicAddressManagement /阿根廷/州 查找带有某个属于阿根廷的特定字符串的所有州

---- / GeographicAddressManagement /阿根廷/科多巴/城市 要查找带有某个字符串的所有城市,这些字符串都属于“ Country ARGENTINA”(州CORDOBA)

每个单独的服务都通过以下方式进行配置,例如,通过以下方式将其放置在服务的名称空间之后

ns = api.namespace('GeographicAddressManagement', description='Prediction of countries')
@ns.route('/Countries', methods=['POST'])
@ns.param('country', 'Substring de Pais (ej:ARGE)', required=True)

如何使相同的端点分层,并根据组合,在单个服务中调用每个元素?

0 个答案:

没有答案