对于非 CRUD 操作,适当的 Restful API 动词应该是什么?

What shoul the appropriate Restful API verb for a non CRUD opperation?

我在 AWS-API 网关中有一个 API 运行,我尽可能地遵循 Restful 标准。

现在我有一个端点应该接收 JSON 并验证它。这不是 CRUD 操作 - 我在这里没有与数据库交互。

我的第一个选择是使用 POST 动词并在正文中传递 JSON。但这不是 "Create Resource" 动作。这不是 GET 操作,因为我没有查询任何数据库,而且在 GET 动词中使用 paylod 也不是一个好习惯。

为了尽可能符合 Restful 标准,什么最适合这种情况?

你说得对,它不是 CRUD,没关系

POST 实际上应该用于更新,有时用于创建,而 PUT 是在面向对象 restful 设计模式中明确用于创建新对象的动词。

您的用例绝对不是面向对象的;它是功能性的。在面向功能服务的架构中,POST 是 "RESTlike" 用例的绝佳选择。

如果 CRUD 和真正的 RESTful 设计模式不能满足您的需求,请不要使用它们。