我正在实现一个简单的API流程,其中涉及充当多个上游API的网关。
[基本上,客户端向该端点提供令牌,服务器对API进行多个顺序调用,从最终调用中收集一堆信息,然后将其返回。
[我们收到令牌,然后转到Upstream API 1
,收到一束与该令牌关联的Objects
。从理论上讲,可以无限量地返回Objects
。
然后我们用逗号分隔每个Object
的ID,并用逗号分隔的Upstream API 2
转到ObjectIDs
以在所有MetaInformation
上进一步接收Objects
。
此MetaInformation
可能并非每个Object
都唯一,因此我们可以收到1到Objects
MetaInformation
的数字之间的任何数字。
然后,我们打算使用逗号分隔MetaInformationIDs
的第三个API,但是该上游API只能使用10个唯一的MetaInformationIDs
,这意味着我们将无法收集客户端的信息。期待。因此,我们可以在此时发出失败案例而无需发出失败的上游请求,但是适合使用哪种HTTP状态?
似乎客户端没有提出错误的请求,因为他们当时无法知道唯一的MetaInformationIds
数量,但是我们将会收到400
状态用> 10 MetaInformationIds
发出请求。
有什么想法吗?
我的建议是让您的第二个微服务创建足够小的MetaInformationIDs
批,以便成功调用第三个微服务。在这种情况下,调用将有望成功,从而消除了您所描述的错误。如果您不能做这样的事情,那么也许您应该重新考虑您的设计。如果可以这样做,作为备用,您可以返回500服务器端错误代码,这仅意味着服务器上发生了一些常规错误。