我正在创建一个与输入匹配的休息服务来查找资源。如果找到资源,它将返回资源,否则它将创建一个新资源并将返回该资源。由于调用可能会更改服务器状态(如果创建了新资源),这不能是GET调用,应该是POST调用。但是会出现找到资源并且不对服务器状态进行任何更改的情况。
公开此API的最佳方式是什么?我想到的选择是:
选项1:将单个api公开为POST api调用。
选项2:为GET公开1个api,为POST提供另一个api。客户端将调用GET,如果找不到资源,则再次调用以创建资源。
我倾向于选项1,因为我不希望消费者处理操作的复杂性,而选项2也会因为2次访问服务器而有更多的延迟。
请建议我为此设计考虑的任何其他优缺点,或者是否有其他选择。