我想制作一个REST API,对传入的文本进行拼写检查,而不在服务器上存储任何文本。
调用可能看起来像`example.com/api/v1/spelling/mistakes',可选的查询参数用于语言环境,错误列表作为返回值。
使用的最佳HTTP方法是什么,因为传入的文本对于GET来说太大了。 POST,PUT和PATCH似乎都没有合理地映射到预期目的,并且在不常用的方法中似乎没有任何其他合适的匹配。
用于“类似翻译”的REST API服务,获取和返回大量数据的最佳HTTP方法是什么?
答案 0 :(得分:2)
我会说这是一个POST。但如果以前发布的数据可能是GET。它不是GET的原因是因为您正在传递此API调用中的所有数据,如您所述。例如,如果数据已发布'在以前的其他地方,GET可用于其中发布的位置或ID的地址(URI)。数据作为GET中的参数传递给API。但是因为我们都发布了'数据并在同一个调用中检索有关该数据的信息,我会说这是一个POST。授予它所发布的数据寿命很短,它仍在发布。如果发布的数据是客户订单,那么它仍然是POST,但数据会在某处保留。这里的区别在于数据存在的短时间。在API的未来迭代中,您可能实际上希望保留该数据并使用某个ID返回它。因此,通过使用POST,您还可以进行未来的增强。
顺便提一下,作为预防措施,请注意这些调用的内存占用量。如果传递的数据变得很大并且API变得非常流行,我可以将其视为非常占用大量内存。不是一个节目停止了,而是在设计它时要考虑的事情。
希望在设计API时有助于缓解我所谓的REST焦虑。