在完成API Nodejs之前提示用户警告

这是用例:

用户调用一个API。 API发现它覆盖了以前保存的内容。 为了提前完成,用户需要说“是,覆盖”或“否,不覆盖”。 所以基本上需要一种方式来发回应答,并得到用户select的请求,然后继续操作。

我的顾虑是:

  • 这样做的最佳做法是什么?
  • 如果我休会服务并根据需要返回响应。 用户inputselect后是否需要激活相同的API?

我正在使用Nodejs / Express和Angularjs。

每个API请求应该可能是无状态的。 要做到这一点,你需要在API中添加一个选项,指示服务器在发生覆盖时应该执行的操作。 客户端可以指定覆盖是否存在或不覆盖并返回数据已经存在的状态。

然后,如果它提示用户并进行第二次API调用,则要求覆盖。 这是客户端行为,而不是服务器策略。

如果客户端第一次发送的don't overwite ,然后在提示第二个API调用请求覆盖之后,那么服务器可能必须重新从头开始重新运行API调用。 具体实现是否可以暂时从第一个请求中caching任何内容来提高第二个请求的性能。 这是服务器上的实现select,与其他任何提高性能的caching一样。

正如上面提到的@ jfriend00,REST API应该是无状态的。 但是你可以通过你的后端nodeJs代码实现这一点。 其实这是国家的错觉,但实际上并非如此。

所以你会有两个端点

  1. /数据/检验

    这只会检查数据库中是否存在数据,并向UI发送true或false

  2. /数据/加

    现在,如果用户想覆盖并点击UI上的'OVERWRITE'button或者某个东西,发送一个请求到这个端点,这个端点会覆盖这个数据。

如果用户不想覆盖,则不要调用添加端点。

如果您只想开发API,那么您可以:

  1. 创build另一个API来检查数据是否存在; 接着

  2. 在与用户确认后继续使用API

要么:

在API中调用另一个标志(如“canOverwrite”),并在调用API之前确认用户是否可以覆盖数据。

使用websockets而不是HTTP调用也会给你发送确认信息的灵活性(但是可能不适用于AngularJS)。