我正在实现一些基于REST的Web服务 - 到目前为止它运行得非常好。我一直在遵循Vinay Sahni(http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api)的建议。
我意识到使用“404”来指示何时找不到服务中的实体的潜在问题。这是基于劫持HTTP协议的404错误响应的想法 - 因为它已经存在并可用。
如果Web服务出现问题 - 即。 Tomcat重新部署失败...调用Web服务将导致404,无论实体是否实际存在,或者URL实际上不可用。
出于这个原因,使用404是不理想的?我觉得那里有人遇到了同样的潜在问题。
答案 0 :(得分:0)
如果找不到请求的实体,则应使用404 Not Found
。期。如果您的服务器部署失败,客户端应该收到5xx错误,而不是4xx错误。
您不应该围绕基础设施缺点设计应用程序。如果你需要规避这些缺点,你应该以与你的应用程序分离的方式来做,比如中间件,代理等。