首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果资源不存在,我的API应该使用什么HTTP代码

当资源不存在时,您的API应该返回HTTP状态码404 Not Found。这个状态码表示客户端请求的资源在服务器上不存在。

基础概念

HTTP状态码是由三位数字组成的编码,用于表示客户端与服务器之间的交互结果。404 Not Found是最常见的错误状态码之一。

优势

  • 明确性:404状态码明确告诉客户端请求的资源不存在,有助于客户端进行相应的处理。
  • 标准化:作为HTTP协议的一部分,404状态码被广泛认可和使用,确保了不同系统和平台之间的兼容性。

类型

HTTP状态码分为五类:

  • 1xx(信息响应)
  • 2xx(成功)
  • 3xx(重定向)
  • 4xx(客户端错误)
  • 5xx(服务器错误)

404 Not Found属于4xx类别,表示客户端错误。

应用场景

当客户端请求的资源在服务器上不存在时,服务器应返回404状态码。例如:

  • 用户尝试访问一个不存在的页面。
  • 客户端请求一个不存在的API资源。

示例代码(Node.js + Express)

以下是一个简单的Express应用示例,展示了如何处理资源不存在的情况并返回404状态码:

代码语言:txt
复制
const express = require('express');
const app = express();
const port = 3000;

app.get('/resource/:id', (req, res) => {
  const resourceId = req.params.id;
  // 假设我们有一个资源列表
  const resources = ['resource1', 'resource2', 'resource3'];

  if (!resources.includes(resourceId)) {
    return res.status(404).json({ message: 'Resource not found' });
  }

  res.json({ message: `Resource ${resourceId} found` });
});

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});

参考链接

通过返回404状态码,您可以确保客户端能够正确处理资源不存在的情况,并采取适当的措施。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如果Node.js已具备反向代理功能,什么使用反向代理?

但是,自Node.js诞生以来,有一条建议是正确:不应该直接将Node.js进程暴露给Web,而应该隐藏在反向代理之后。但是,在我们搞清楚为什么使用反向代理之前,让我们首先看一下它是什么。...如果服务是在暴露api.example.org,反向代理可以将请求转发给api1.internal.example.org,api2等 那里有许多不同反向代理。...既然我们知道反向代理是什么,我们现在可以看看为什么我们想要使用Node.js。 什么使用反向代理? SSL终止 SSL终止是使用反向代理最常见原因之一。...它能够从文件系统提供静态资源使用HTTP响应执行gzip压缩,内置支持HTTPS以及许多其他功能。它甚至能够通过模块运行应用程序多个实例并执行自己请求调度cluster。...SSL证书管理可以变得更简单。所需应用程序代码量也减少了。强烈建议您在下一个生产Node.js应用程序时使用反向代理。

1.6K40

如果要再加一个删选条件过滤掉带“已取消”字样应该怎么加代码呀?

后来【瑜亮老师】给了一个示例代码,如下所示: for i in result: if "摘要" not in i[""] and "已取消" not in i[""]: do something...三、总结 大家好,是皮皮。这篇文章主要盘点了一个Python处理问题,文中针对该问题,给出了具体解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【Jun】提问,感谢【论草莓如何成为冻干莓】、【瑜亮老师】给出思路和代码解析,感谢【Python进阶者】、【磐奚鸟】等人参与学习交流。...大家在学习过程中如果有遇到问题,欢迎随时联系解决(微信:pdcfighting),应粉丝要求,创建了一些高质量Python付费学习交流群和付费接单群,欢迎大家加入Python学习交流群和接单群...如果在学习过程中,有遇到任何问题,欢迎加我好友,拉你进Python学习交流群共同探讨学习。

9810
  • 海外http代理中api代理是什么意思?使用方法有哪些?

    ip代理在互联网工作中是常见,而apiip代理是ip代理一种类型,使用时需要生成api链接。在这篇文章中,将详细介绍api什么api代理又是什么,并且提供使用api代理方法和步骤。...首先,什么api?在我们日常使用互联网过程中,经常需要在多个软件组件之间来回跳跃,而支撑我们完成这一行为正是api接口。...简单来说,api是不同软件系统之间通信桥梁,使得这些系统可以相互协作,共同完成特定任务。api是一组预定义规则、协议和工具,它们定义了软件如何与其他软件交互。那么,api代理又是什么?...另外,你还可以将api接口对接到软件中,这样软件就可以自动获取ip代理并自动切换到使用ip代理。同时,你也可以将api接口对接到程序代码中,这样就能实现全自动化工作。...(ip池)api代理优点在于它能够与软件或程序代码进行对接,通过api接口可以实现自动化获取ip代理并切换,这样可以更加高效和方便,不需要手动切换每个ip。

    55100

    RESTful API十个最佳实践1. 使用名词而不是动词 2. Get方法和查询参数不应该改变资源状态3. 使用名词复数形式 4. 为关系使用资源 5. 使用HTTP头决定序列化格式 6. 使

    通常我们使用RESTFul(Representational State Transfer)设计方式来设计Web api,这通常用来分离API结构了业务逻辑,它使用典型HTTP方法,诸如GET,POST.DELETE...使用HTTP头决定序列化格式 在客户端和服务端都需要知道使用什么格式来进行通信,这个格式应该HTTP头中指定: Content-Type:定义请求格式; Accept :定义允许响应格式列表...使用HATEOAS Hypermedia as the Engine of Application State是一个指导原则,它规定超文本链接应该被用于在API中创建更好资源导航: { "id":...使用HTTP状态码处理错误 忽略错误处理API是很难使用,简单返回500和调用堆栈是非常不友好也非常无用使用HTTP状态码 HTTP标准提供了70多个状态码来描述返回值,我们不需要完全用到他们...404 – 未找到,指定资源不存在 422 – 不可指定请求体 – 只有服务器不能处理实体时使用,比如图像不能被格式化,或者重要字段丢失。

    2.8K50

    用ASP.NET Core 2.0 建立规范 REST API -- GET 和 POST

    如果是非分层结构资源, 那么它不应该这样命名: api/xxx/xxx/users, 而应该使用 api/users....应该使用什么类型作为ID 如果使用int型作为ID的话, 大部分时候是没有问题, 但是如果使用数据库ID是自增整型, 如果你替换数据库了, 然后把原有数据迁移到新数据库了, 那么现有数据ID...这是没有问题,但是如果查询一个不存在资源: ? 这就有问题了,如果查询不到资源,那么返回应该是404 NOF FOUND 而不是200 OK....,表示请求资源不存在 405 - Method not allowed,这就是当我们尝试发送请求给某个资源时,使用HTTP方法却是不允许,例如使用POST api/countries, 而该资源只实现了...OK 如果POST到单个资源地址 如果POST到这个地址 http://localhost:5000/api/countries/{id},  那么, 如果该id资源不存在, 则应该返回404; 如果

    1.6K10

    用ASP.NET Core 2.0 建立规范 REST API -- DELETE, UPDATE, PATCH 和 Log

    这里使用AutoMapper即可,上面红框方法就是把第一个参数对象属性映射到第二个参数对象上。 再有就是应该返回什么?...PUT请求会发送到现有资源URI上,如果资源不存在就返回404。 而POST用于创建资源,所以肯定不知道该资源URI(是指GETURI)。...但是如果API消费者可以创建资源,那么,PUT请求可以被发送到一个暂时不存在资源URI上;如果资源不存在,那就创建它,否则就修改它。...对于EFCore实体约束和验证,不愿意使用注解方式(因为Model类应该只干自己活),更喜欢使用fluent api。...虽然上面的代码对内存数据库没有用,但是还是添加上吧。 如果一个HTTP请求造成了EFCore model验证失败,如果返回500的话,感觉就不太正确。

    1.9K20

    后端开发必备 RestFul API 知识

    RestFul API 是每个程序员都应该了解并掌握基本知识,我们在开发过程中设计API时候也应该至少要满足RestFul API最基本要求(比如接口中尽量使用名词,使用POST 请求创建资源,...HATEOAS设计要求,实际上RestFul API 最好满足HATEOAS设计,也就是在返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该什么。...一般来说,数据库中表都是同种记录"集合"(collection),所以API名词也应该使用复数。...举例来说,有一个API提供动物园(zoo)信息,还包括各种动物和雇员信息,则它路径应该设计成下面这样。 接口尽量使用名词,禁止使用动词,下面是一些例子。...如果某些动作是HTTP动词表示不了,你就应该把动作做成一种资源

    81240

    RESTful API 设计指南

    以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。 今天,将介绍RESTful API设计细节,探讨如何设计一套合理、好用API主要参考了两篇文章(1,2)。...一、协议 API与用户通信协议,总是使用HTTPs协议。 二、域名 应该尽量将API部署在专用域名之下。...一般来说,数据库中表都是同种记录"集合"(collection),所以API名词也应该使用复数。...API RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该什么。...十一、其他 (1)API身份认证应该使用OAuth 2.0框架。 (2)服务器返回数据格式,应该尽量使用JSON,避免使用XML。

    78940

    RESTful架构详解 转

    统一资源接口对URI有什么指导意义? 统一资源接口要求使用标准HTTP方法对资源进行操作,所以URI只应该来表示资源名称,而不应该包括资源操作。 通俗来说,URI不应该使用动作来描述。...响应代码处理有必要吗? HTTP 响应代码可用于应付不同场合,正确使用这些状态代码意味着客户端与服务器可以在一个具备较丰富语义层次上进行沟通。.../1.2/foo http://api.example.com/2.0/foo 如果我们把版本号理解成资源不同表述形式的话,就应该只是用一个URL,并通过Accept头部来区分,还是以github为例...这样方式对于客户端来说,无疑是更为直观,但混淆了资源名称和资源表述形式。 个人认为,还是应该优先使用内容协商来区分表述格式。...2. 4 资源链接 们知道REST是使用标准HTTP方法来操作资源,但仅仅因此就理解成带CURDWeb数据库架构就太过于简单了。

    84131

    RESTful规范

    zoo=1&area=3 ; 二、   版本 应该API版本号放入到URI中 https://api.example.com/v1/zoos 三、 Request HTTP方法 通过标准HTTP方法对资源...如果抛出该类异常,HTTP响应状态码应该设成什么; 2.     异常文本描述; 在Controller层使用统一异常拦截器: 1.     ...如果经过验证后依然没权限,应该 403(即 authentication和 authorization区别)。...自己代码不要抛这个异常 六、其他 (1)API身份认证应该使用OAuth2.0框架 (2)服务器返回数据格式,应该尽量使用JSON,避免使用XML (3)比较复杂接口不能确定是使用POST还是...PUT时,要看具体业务层代码,看看接口产生结果是否幂等,如果幂等用PUT,相反用POST       如:接口接收到一资源资源存在更新,不存在插入新数据,这个接口就要用PUT 参考:https:/

    2K00

    RESTful 架构详解

    2. 2 统一资源接口 RESTful架构应该遵循统一接口原则,统一接口包含了一组受限预定义操作,不论什么资源,都是通过使用相同接口进行资源访问。...统一资源接口对URI有什么指导意义? 统一资源接口要求使用标准HTTP方法对资源进行操作,所以URI只应该来表示资源名称,而不应该包括资源操作。 通俗来说,URI不应该使用动作来描述。...响应代码处理有必要吗? HTTP响应代码可用于应付不同场合,正确使用这些状态代码意味着客户端与服务器可以在一个具备较丰富语义层次上进行沟通。.../1.2/foo http://api.example.com/2.0/foo 如果我们把版本号理解成资源不同表述形式的话,就应该只是用一个URL,并通过Accept头部来区分,还是以github为例...这样方式对于客户端来说,无疑是更为直观,但混淆了资源名称和资源表述形式。 个人认为,还是应该优先使用内容协商来区分表述格式。

    98320

    ApacheNginx伪静态规则匹配http:出现问题与解决

    困扰了挺长时间了,今天偶尔将代码放到 Apache 服务器下测试时,意外解决了!...问题是这样搭建了一个网站 icon 图标抓取 API 接口,正常情况下对象传参是通过$_GET['url']获取,因此常规获取图标的地址应该是: http://domain.com/?...其实在用 nginx 失败之后,用 php 获取$_GET['url']发现得到参数中 http://会是 http:/,少一个斜杠!而且直接使用 http://domain.com/?...地址是http://seo.zgboke.com/geticon/ ,虽然是专门给中国博客联盟用,但是如果你有图标调用需求,也可以在合理使用前提下自由发挥。...当然,本文写到伪静态规则只是一部分,如果要实现 CDN 加速,那还得新增相应规则,不过这都是后话了,等下次在张戈博客分享这个网站图标抓取 API 源码时候,会一并贴上,敬请期待!

    1.9K70

    RESTful API 设计指南

    以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。 今天,将介绍RESTful API设计细节,探讨如何设计一套合理、好用API主要参考了两篇文章(1,2)。 ?...一、协议 API与用户通信协议,总是使用HTTPs协议。 二、域名 应该尽量将API部署在专用域名之下。...一般来说,数据库中表都是同种记录"集合"(collection),所以API名词也应该使用复数。...API RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该什么。...十一、其他 (1)API身份认证应该使用OAuth 2.0框架。 (2)服务器返回数据格式,应该尽量使用JSON,避免使用XML。 (完)

    1.1K50

    RESTful API怎样设计更合理

    以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。 今天,将介绍RESTful API设计细节,探讨如何设计一套合理、好用API主要参考了两篇文章(1,2)。 ?...一、协议 API与用户通信协议,总是使用HTTPs协议。 二、域名 应该尽量将API部署在专用域名之下。...一般来说,数据库中表都是同种记录”集合”(collection),所以API名词也应该使用复数。...API RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该什么。...十一、其他 (1)API身份认证应该使用OAuth 2.0框架。 (2)服务器返回数据格式,应该尽量使用JSON,避免使用XML。

    58630

    深入理解RESTful API设计原则

    什么是RESTful API?...RESTful API设计原则包括: 用URI来标识资源 通过HTTP方法来操作资源 使用HTTP状态码来表示操作结果 支持内容协商,可以返回不同格式,如JSON、XML等 如何设计RESTful...HTTP方法使用:GET方法用于查询资源,POST方法用于创建资源,PUT方法用于更新资源,DELETE方法用于删除资源。 URI参数使用:URI参数应该用于对资源进行过滤、排序等操作。...HTTP状态码使用HTTP状态码用于表示请求结果,如200表示成功,404表示资源不存在,500表示服务器内部错误等。...我们强调了资源命名、HTTP方法使用、URI参数使用HTTP状态码使用、返回结果格式等方面的重要性,并提出了安全性、性能优化、错误处理和日志记录等方面的建议。

    36130

    【译】构建RESTful API13种最佳实践

    客户端和服务器之间交互是通过 HTTP(S)请求进行,该请求传输了请求数据。 无状态:更重要是,RESTful API 应该是无状态。每个请求都被视为独立请求。...确保使用正确 HTTP 方法,因为这将为使用 RESTful API 开发人员增加很多混乱。最好是坚持使用预定准则。...这种方法最大优点是,每个开发人员都了解 RESTful API 设计方式,他们可以立即使用 API,而不必阅读你每个端点文档。 3.使用复数资源 资源应始终使用其复数形式。为什么?...因此,你将调用以下端点:GET api.com/authors。 当你读取请求时,你无法判断 API 响应是否只包含一个或所有作者。因此,API 端点应该使用复数资源。...401(Unauthorized):未授权,你尝试访问你没有权限资源。 404(Not Found):请求资源不存在

    1.9K10

    架构必备「RESTful API」设计技巧经验总结

    但是,在这里不会写代码好处,而是更多地提一些感受,这些感受会在当前以及未来项目中积极地得到实现。还总结了一套API规则和原语,包括了功能和实现细节。...因此,喜欢返回“OK”,尽管这是一个字符串,但是在返回时候会被包装成一个简单响应对象。 ? 使用HTTP状态码和错误响应 因为我们使用HTTP方法,所以我们应当使用HTTP状态码。...喜欢使用这些状态码: 对于数据错误 400:请求信息不完整或无法解析。 422:请求信息完整,但无效。 404:资源不存在。 409:资源冲突。...要区分代码和描述,打算将error(代码)作为机器可识别的常量,将description作为可更改用于人类识别的字符串。点击这里有一篇http1.0和2.0对比。...这个功能也很有用,通过它可以很方便地检查某个时间点某台服务器上API什么版本,而这无需通过认证。 ? 提供了status和version这两个值。

    2K30
    领券