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

RESTful API 最佳实践

对于安全方法,它仍然可能改变服务器上内容或资源,但这必须不导致不同表现形式。 有关HTTP常用方法幂等性和安全性如下: ? RESTful API设计规则: 1....Request:通过标准HTTP方法对资源CRUD GET:查询资源 GET /comments //获取所有评论 GET /comments/tid/1 //获取文章tid为1所有评论 POST:创建资源...错误表现形式应该跟其他资源保持一致,只是用一些自己字段。 API应该一直返回合理HTTP状态码。API错误一般情况下分成两类:代表客户端错误400系列状态码和代表服务端错误500系列状态码。...API至少把所有400系列错误统一用易读JSON格式来展示。如果可能(比如,如果负载均衡和反向代理能够创建自定义错误内容的话),500系列状态码也这么弄。...当API通过浏览器访问时候,可以用来弹出一个认证对话框 403 Forbidden – 当认证成功,但是认证过用户没有访问资源权限 404 Not Found – 当一个不存在资源请求 405

1.9K31

REST API 最佳实践

需要注意是 POST 和 PUT 最大区别就是幂等性,所以 PUT 也可以用于创建操作,只要在创建前就可以确定资源 ID。 获取:使用 GET 方法获取资源。GET 请求从不改变资源状态。...param1=23¶m2=432 在这种情况下,API响应不会返回任何资源。而是执行一个操作并将结果返回给客户端。因此,您应该在URL中使用动词而不是名词,来清楚区分资源请求和非资源请求。...表示永久移动 4XX 客户端错误,如 400 表示错误请求,404 表示未找到资源 5XX 服务器端错误,如 500 表示内部服务器错误 13.提供有用错误消息 除了提供恰当HTTP状态代码外...文档应包含: API 相关端点 端点示例请求 在几种编程语言中实现 不同错误消息列表及其状态代码 你可以用于 API 文档最常用工具是 Swagger。...并且由于大部分关系查询都与当前登录用户有关,所以也可以直接在关系所属资源返回关系状态,如点赞状态就可以直接在获取文章详情时返回

1.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

RESTful架构API风格与相关规范 极客开发者

实际上,在对计算机技术理解中,一百个人可能会有一百种理解方式,尽管见仁见智,但我们目的都是把技术当作工具,去实现我们程序功能。如果在本文中描述有所错误,或您有所不解,欢迎留言评论!...备注 200 OK - 成功 204 NO CONTENT - 无内容 DELETE返回204状态码,表示资源已经不存在 303 See Other - 其他 表示参考另一个 URL,此时应当返回URL...链接 400 bad request - 服务器不理解客户端请求(如,参数错误) 401 Unauthorized - 没有通过身份验证 403 Forbidden - 没有访问权限 404 Not...请求无法完成 410 Gone - 资源不存在,或不可用 415 unsupported media type - 不支持媒体类型 如服务器需要客户端使用JSON数据请求,而客户端使用XML进行请求...,即超媒体,在返回结果中提供链接,连向其他API方法或者一些文档,使得用户不查文档,也知道下一步应该做什么。

37510

还原Facebook数据泄漏事件始末,用户信息到底是如何被第三方获取

Steve Bannon 律师表示,他对此没有任何评论,因为他委托人“对指控一无所知”。他补充说 : “ Bannon 先生第一次听到这些报道是过去几天媒体调查结果 。”...他们知道公众正在抨击他们,但他们也相信剑桥分析公司错误远远超过他们。 尽管如此,他们还面临四大难题。 他们如何收紧系统以确保这一切不再发生? 他们应该如何处理所有关请求扎克伯格作证要求?...中读取数据 首先是查询 当你打开 Graph API Explorer 时,它将自动加载最新版本 Graph API 和默认 GET 请求,如:GET / me?...从Graph API Explorer中添加内容为Hello消息字段! 系统响应将返回 post_id 。 post_id 由你用户 id ,后面加下划线和整数组成。 检查资源管理器中更新。...发表评论 页面ID:使用上面的 / me / accounts 请求获取你想要评论页面 id(page_id) 。单击响应中 page_id 并将其移动到请求路径框中。

3.6K50

使用ASP.NET Core 3.x 构建 RESTful API - 3.3 状态码、错误故障、ProblemDetails

4xx,客户端错误400 - Bad Request,表示API消费者发送到服务器请求是有错误; 401 - Unauthorized,表示没有提供授权信息或者提供授权信息不正确...; 403 - Forbidden,表示身份认证已经成功,但是已认证用户却无法访问请求资源; 404 - Not Found,表示请求资源不存在; 405 - Method...not allowed,当尝试发送请求资源时候,使用了不被支持HTTP方法时,就会返回405状态码; 406 - Not acceptable,这表示API消费者请求表述格式并不被Web...415 - Unsupported media type,与406正好相反,有一些请求必须带着数据发往服务器,这些数据都属于特定媒体类型,如果API不支持该媒体类型格式,415就会被返回。...错误并不会影响API可用性。 故障 Faults 故障是指,针对一个合理请求API无法返回响应。 换句话说就是API引起问题。 这些是HTTP 5xx错误

1.6K20

DRF框架学习(一)

2、请求URL地址时,采用不同请求方式执行不同操作(获取信息GET;新增POST;修改PUT;删除DELETE) path只是将更改内容发送,put将更改后所有的内容都发送过去。...4、响应数据返回&响应状态码 GET /collection:返回资源对象列表(数组) GET /collection/resource:返回单个资源对象 POST /collection:返回新生成资源对象...返回一个空文档 状态码 说明 200 获取或修改成功 201 新增成功 204 删除成功 404 资源不存在 400 客户端请求有误 500 服务器错误 5、响应数据格式:json数据 域名、版本、...错误处理、超媒体了解即可。...4.利用Django基础自定义一套Restful API接口 需求: 1、自定义Restful API接口,提供以下五个接口: 1)获取所有的图书信息; 2)新增一本图书信息; 3)获取指定图书信息

1.3K20

Restful 接口设计最佳事件

一旦定义好了要暴露资源,你可以定义资源上允许操作,以及这些操作和你API对应关系: GET /tickets # 获取ticket列表 GET /tickets/12 # 查看某个具体ticket...出错处理 就像html错误页面能够显示错误信息一样,API 也应该能返回可读错误信息–它应该和一般资源格式一致。API应该始终返回相应状态码,以反映服务器或者请求状态。...API错误码可以分为两部分,400系列和500系列,400系列表明客户端错误:如错误请求格式等。500系列表示服务器错误API应该至少将所有的400系列错误以json形式返回。...400 bad request - 请求格式错误。 401 unauthorized - 未授权。 403 forbidden - 鉴权成功,但是该用户没有权限。...404 not found - 请求资源不存在 405 method not allowed - 该http方法不被允许。 410 gone - 这个url对应资源现在不可用。

86030

构建可扩展RESTful API:设计原则与最佳实践

导言:在设计和构建RESTful API时,需要考虑多个方面,包括资源命名规范、URI设计、HTTP方法使用、状态码处理、错误处理、安全性和身份验证等。...示例:200 OK - 请求成功201 Created - 创建成功400 Bad Request - 请求错误404 Not Found - 资源不存在500 Internal Server Error...返回统一错误响应格式可以帮助客户端更好地处理错误情况。错误响应应该包含错误码、错误消息和可选错误详细信息。...本文介绍了RESTful API设计原则和最佳实践,包括资源命名、URI设计、HTTP方法使用、状态码处理、错误处理、安全性和身份验证等方面。...通过遵循这些原则和实践,您可以构建出高质量、可扩展和易于维护API,为应用程序成功打下坚实基础。如果您对RESTful API设计有更多问题或想要了解更多详细信息,请在评论区留言。

46320

Terra:一款功能强大Twitter和Instagram公开资源情报工具(OSINT)

关于Terra Terra是一款功能强大公开资源情报工具(OSINT),该工具主要针对是Twitter和Instagram数据,广大研究人员可以利用Terra在这两个社交媒体平台上实现信息收集和数据获取...支持社交媒体平台 · Twitter · Instagram 工具安装 首先,广大研究人员可以使用下列命令将该项目源码克隆至本地: $ git clone https://github.com/xadhrit...reset target: 在命令行中重置新目标 comments : 获取目标所有的评论 followers : 获取目标的粉丝列表 followings: 获取目标的关注列表 followers...commenter': 获取目标发布信息评论用户 项目地址 https://github.com/xadhrit/terra 参考资料 https://github.com/bear/python-twitter...https://github.com/ping/instagram_private_api

1.5K30

快速学习-RESTFul设计风格

2、API设计六要素 资源路径(URI)、HTTP动词(Method)、过滤信息(query-string)、状态码(Status-code)、错误信息(Error)、返回结果(Result) ?..., 服务器返回完整属性 DELETE: 从服务器删除资源 3)过滤信息 通常也叫做请求参数或查询字符串。...常见状态码: 状态码 含义 说明 200 OK 操作成功, 并返回数据 201 CREATED 新建成功 204 NO CONTENT 删除成功 400 BAD REQUEST 请求语法错误 403 Forbidden...400 (bad request)- 指代坏请求 404 (not found)- 资源不存在 409 (conflict)- 通用冲突 500 (internal server error)...通常以Json格式返回: { “error”: “错误信息”, } 6)返回结果 针对不同操作, 服务需要返回结果应该符合这样规范 GET /collections – 返回资源列表(数组) GET

1.2K20

前端要知道RESTful API架构风格

统一接口限制详细 统一接口限制风格到底长什么样?下面说一下这个限制子限制,接口定义包括4个部分。 资源标识。资源是任何可以命名事物,比如用户、评论等。...只返回你指定字段 状态码。选择正确状态作为返回状态 错误处理。...如果你请求是错,那么应用尽量把错误信息给返回,并按照一个规范通用格式 安全 HTTPS 鉴权 限流 开发者友好 文档 超媒体 RESTful API 示例 下面是我是真实API截图,用Swagger...400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出请求错误,服务器没有进行新建或修改数据操作,该操作是幂等。...404 NOT FOUND - [*]:用户发出请求针对不存在记录,服务器没有进行操作,该操作是幂等

87830

RESTful API设计--指南

例如,如果我们想为产品设计 api,它应该是这样设计: /products /products/12345 第一个 API获取所有产品,第二个 API获取特定产品。...使用正确 HTTP 方法 RESTful API 有各种方法来指示我们将使用此 API 执行操作类型。 GET — 获取资源请求指定页面信息,并返回实体主体。...POST — 创建资源,向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新资源建立和/或已有资源修改。...例如,如果您使用 Facebook graph APIs,如果出现错误,它会返回如下消息: { "error": { "message": "(#803) Some of the aliases...---- 感谢您阅读 如果你遇到了一些更好设计 api 方法,请随时在评论部分分享这些方法。欢迎所有反馈! 文章来源: Tanmay Deshpande

1.8K50

RESETful API 设计规范

资源过滤 如果记录数量很多,服务器不可能都将它们返回给用户。API 应该 提供参数,过滤返回结果。下面是一些常见参数。 ?page=10:指定返回记录数量 ?...对不会返回响应体成功请求进行响应(比如 DELETE 请求) 3xx 重定向 40x 客户端错误 400 Bad Request 请求异常,比如请求body无法解析 401 Unauthorized...没有进行认证或者认证非法或失效 403 Forbidden 服务器已经理解请求,但是拒绝执行它 404 Not Found 该状态码表示用户请求资源不存在,如 获取不存在用户信息 (get /users.../9999999) 访问不存在端点 都 必须 返回该状态码,若该资源已永久不存在,则 应该 返回 410 响应。...如通过手机号码提供注册功能 API,当用户提交手机号已存在时,必须 返回此状态码。 410 Gone 表示当前请求资源已永久不存在

1.6K10

带有 Python REST Web 服务示例 REST API 快速入门指南

您想要在 Web 应用程序中访问所有内容都是一种资源,无论是您想要下载、更新、删除媒体还是文档。REST 定义了一种访问、传输和修改这些资源方法。...2.请求动词 这些定义了访问资源方式,客户端想要用它们做什么是用请求动词指定,这些是基本方法 GET:这将用于从 TGS Web 应用程序数据存储中获取文章。...请求头 发送到服务器额外请求以指定响应类型、编码、内容类型和自定义参数。等等。 4. 请求体 尝试创建资源时,资源数据在放置请求正文中发送。 5. 响应体 Web 服务器在响应正文中返回数据。...创建 API 端点和 REST 方法 接下来,我们需要创建 api 端点和所需 REST 方法,如下所示。 GET 方法将在文章列表中搜索请求类别,如果找到则返回数据以及响应代码 200 OK。...如果记录已存在,则返回错误代码 400 错误请求。 def post(self,category): PUT 方法将覆盖记录并返回数据以及响应代码 200 OK。

2.1K00

如何使用Python对Instagram进行数据分析?

Instagram是最大图片分享社交媒体平台,每月活跃用户约五亿,每日有九千五百万图片和视频被上传到Instagram。其数据规模巨大,具有很大潜能。...API和工具简介 Instagram提供了官方API,但是这些API有些过时,并且当前所提供功能也非常有限。因此在本文中,我使用了LevPasha提供Instagram官方API。...该API支持所有关键特性,例如点赞、加粉、上传图片和视频等。它使用Python编写,本文中我只关注数据端操作。 我推荐使用Jupyter Notebook和IPython。...获取最受欢迎帖子 现在我们已经知道了如何发出基本请求,但是如何实现更复杂请求呢?下面我们要做一些类似的事情,即如何获取我们帖子中最受欢迎。...如果你了解社交媒体,你就会知道这是高峰使用时间,大多数企业选取此时间段发帖以获得最大认可度。 获取粉丝和被粉列表 下面我将获取粉丝和跟帖列表,并在列表上执行一些操作。

2.7K70

使用Python对Instagram进行数据分析

Instagram是最大照片分享社交媒体平台,每月有5亿活跃用户,每天会上传9500万张照片和视频到Instagram上。它有大量数据和巨大潜力。...这篇文章将教会你如何使用Instagram作为数据来源,以及如何将它作为你项目的开发者。 关于API和工具 Instagram有一个官方API,但它已经过时了,目前在你能用它做事情非常有限。...因此,在这篇文章中,我将使用LevPasha非官方Instagram API,它支持所有的主要功能,如follow,上传照片和视频等。它是用Python编写。...正如你所看到,最受欢迎时间段是18:00-22:00,如果你使用社交媒体,你就会知道这是一个社交媒体使用高峰时间,大多数公司选择这个时间发布消息以获得最多参与。...我希望你学会如何使用InstagramAPI,并知道能用它做什么。保持独创性眼光,因为它还在发展中,将来你还可以做更多事情。

2.7K40

从0到1开发测试平台(五)RESTful API接口设计标准及规范

这里就简单说下跟我们平台有关resultful相关知识 一.版本 将版本信息放在URL中,如: https://api.example.com/v1/ https://api.example.com...以 DELETE 为例,第一次DELETE返回200表示删除成功,第二次返回404提示资源不存在,这是允许。...301:永久重定向 302:暂时重定向 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出请求错误,服务器没有进行新建或修改数据操作,该操作是幂等。...404 NOT FOUND - [*]:用户发出请求针对不存在记录,服务器没有进行操作,该操作是幂等。...410 Gone -[GET]:用户请求资源被永久删除,且不会再得到。 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误

1.1K60

C#爬虫项目实战:如何解决Instagram网站封禁问题

在当今数字化时代,网络爬虫已经成为了获取互联网数据重要工具之一。然而,许多网站为了保护自身资源,会采取各种手段限制爬虫程序访问,其中包括封禁IP地址。...背景介绍Instagram是全球最受欢迎社交媒体之一,每天有数以百万计用户在其平台上分享照片和视频。...然而,Instagram对于频繁大量请求有着严格访问限制,可能会导致IP被封禁,进而影响爬虫程序正常运行。为了解决这一问题,我们可以利用代理IP来轮换请求,降低被封禁风险。2....技术实现在本项目中,我们将使用C#编写一个简单网络爬虫程序,通过请求InstagramAPI获取数据。同时,我们将使用代理IP来隐藏真实IP地址,减少被封禁可能性。...用户名、代理IP地址和端口号,以发送HTTP请求获取用户信息JSON数据。

17010

如何设计出优秀Restful API

但是我们怎么告诉服务器,有关学校资源操作呢,例如增加,删除或者更新学校? 这就是HTTP方法(GET,POST,DELETE,PUT)(也成为动词)扮角色地方!...PUT方法请求服务器更新资源或创建资源(如果不存在)。 /schools/清华/students/张三, 对清华大学下学生资源中,更新或者创建张三。...6 使用HTTP状态码 当客户端通过API向服务器发出请求时,客户端应该知道反馈,无论是失败,成功还是请求错误。 HTTP状态代码是一系列标准化代码,针对http请求可能会发生各种情况。...服务器应始终返回正确状态代码。 很多人喜欢把错误信息放在返回值中,典型Code和Message,其实比较Low。...因此无需再次传输相同数据。 4xx(客户端错误类别) 这些状态代码表示客户端已提出错误请求400 Bad Request表示未处理客户端请求,因为服务器无法理解客户端要求内容。

1K10
领券