我正在编写API以接受POST
请求并提供输出。用例是,我应该能够支持单个和输入。所以,我提出了这样的结构:
输入:
{
"inputs": [{
"id": 1,
"foo": "bar"
},
{
"id": 2,
"foo": "baz"
}
]
}
输出:
{
"outputs": [{
"id": 1,
"result": "bax"
},
{
"id": 2,
"result": "bar"
}
]
}
此格式既支持单个也支持多个呼叫。但是,这意味着API必须处理CPU和线程,例如API调用可能包含100个输入,处理这些输入可能需要一段时间。所以,我需要以下几点的输入:
如果这个问题更适合Stack Exchange,那么我很高兴它能够被移动。
答案 0 :(得分:1)
设置您的Web服务器以接受HTTP2,并使用可以使用HTTP2多路复用的HTTP2感知库编写客户端调用。
Google顶部是https://hyper.readthedocs.io/en/latest/
这使您无需批处理即可恢复为纯REST,在此情况下,HTTP2连接多路复用可减少多个调用对网络的影响-即,仅在客户端和服务器之间创建一个连接。
这取决于可维护性和性能之间的权衡。 HTTP2将使您免于管理多个线程的麻烦。大概与批处理相比,多个呼叫仍然会对网络产生影响,尤其是在批处理较大的情况下。