返回顶部
首页 > 资讯 > 精选 >如何根据豆瓣api来理解Restful API设计的
  • 637
分享到

如何根据豆瓣api来理解Restful API设计的

2023-06-19 12:06:47 637人浏览 独家记忆
摘要

今天就跟大家聊聊有关如何根据豆瓣api来理解Restful API设计的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.什么是RESTREST全称是Representational

今天就跟大家聊聊有关如何根据豆瓣api来理解Restful API设计的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1.什么是REST

REST全称是Representational State Transfer,表述状态转移的意思。它是在Roy Fielding博士论文首次提出。REST本身没有创造新的技术、组件或服务,它的理念就是在现有的技术之上,更好的使用现有的 WEB规范。用REST规范的web服务器,能够更好的展现资源,客户端能够更好的使用资源。每个资源都由URI/ID标识。REST本身跟Http无关,但是目前http是与它相关的唯一实例。REST有着优雅、简洁的特性,本文是根据豆瓣api来谈谈自己对restful的一些理解。

2.URI规范

  • URI(UnifORM Resource Identifiers) 统一资源标示符

  • URL(Uniform Resource Locator) 统一资源定位符

URI 的格式:

URI的格式定义如下:  URI = scheme "://" authority "/" path [ "?" query ] [ "#" fragment ]
  • uri代表的是一种资源,要做到优雅、简洁。

  • 最好在api地址标明版本

比如

https://api.douban.com/v2
  • 关于分隔符“/”,比如:

"/"分隔符一般用来对资源层级的划分,比如:https://api.douban.com/v2/book/1220562表述了豆瓣api,version2下的图书仓库下的编号为1220562的图书。
  • URI尽量使用“-”代替下划线“_“。

  • URI统一使用小写字母

  • URI不包含文件扩展名

  • 使用?用来过滤资源,比如?limit=10 :指定返回10条记录。

  • 不使用无意义的字符串、数字,要做到简洁。

3.正确使用method

  • get -只用做资源的读取。

  • post-通过用作创建一个新的资源。

  • delete-通过用作资源的删除。

  • put -通过用作更新资源或者创建资源

  • head-只获取某个资源的头部信息。

比如 豆瓣图书api:

namemethodapi
获取图书信息get/v2/book/:id
用户收藏某本图书post/v2/book/:id/collection
用户修改对某本图书的收藏put/v2/book/:id/collection
用户删除对某个图书的收藏delete/v2/book/:id/collection
  • 另外,在一些不符合curd的情况下,使用 post。

  • 把动作转换成资源

    比如,上述接口中,用户收藏某本书对外暴露的接口是”/v2/book/:id/collection”,收藏动作通过post方法来展现,而不直接写着api中,collection “收藏”,名次,动作直接转换成了资源。

4.选择合适的状态码

http请求需要返回状态码,约定俗成的状态码能够帮助开发团队提高沟通效率。

  • 2xx: 请求正常处理并返回

  • 3xx: 重定向

  • 4xx: 客户端请求有错误

  • 5xx: 服务端请求有错误

比如豆瓣api返回的状态码说明:

状态码含义说明
200ok请求成功
201created创建成功
202accepted更新成功
400bad request请求不存在
401unauthorized未授权
403forbidden禁止访问
404not found资源不存在
500internal server error内部错误

5.使用通用的错误码

通用错误码,具体产品由具体产品api给出。比如豆瓣api:

错误码错误信息含义
999unknow_v2_error未知错误
1000need_permission需要权限
1001uri_not_found资源不存在
….

太多了,只列出几条,具体见豆瓣 api。

6. 安全

这部分内容不属于这篇文章,但是稍微说明下:

  • 使用https

  • 使用Jwt验证

  • 使用参数签名,防止参数被篡改。

  • 使用权限验证,shiro ,或者自己建数据库(用户、角色、权限)

7.api文档

接口文档的编写至关重要,最好是写一个在线接口文档。接口文档能够方便团队查阅,减少不必要的沟通。如果对外公开api,api文档的质量直接反应了一个公司的技术水平,甚至一个公司的文化气质。

看完上述内容,你们对如何根据豆瓣api来理解Restful API设计的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 如何根据豆瓣api来理解Restful API设计的

本文链接: https://lsjlt.com/news/296030.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何根据豆瓣api来理解Restful API设计的
    今天就跟大家聊聊有关如何根据豆瓣api来理解Restful API设计的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.什么是RESTREST全称是Representational...
    99+
    2023-06-19
  • 如何分析RESTful API 设计指南
    本篇文章给大家分享的是有关如何分析RESTful API 设计指南,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 RESTful API 设计网络应用程序,分为前端和...
    99+
    2023-06-04
  • Samza的API是如何设计的
    Samza API是为了简化流处理应用程序的开发和管理而设计的。它提供了一组高级API和工具,使开发人员能够轻松地构建、部署和管理流...
    99+
    2024-04-02
  • 如何理解API快速开发平台设计
    这篇文章主要介绍“如何理解API快速开发平台设计”,在日常操作中,相信很多人在如何理解API快速开发平台设计问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解API快速开...
    99+
    2024-04-02
  • 如何设计一个安全的API接口详解
    目录前言一 安全性问题 1.1 调用接口的先决条件-token 1.2 使用POST作为接口请求方式 1.3 客户端IP白名单 1.4 单个接口针对ip限流 1.5 记录接口请求日志...
    99+
    2024-04-02
  • 如何理解HTML5的History API
    这篇文章主要讲解了“如何理解HTML5的History API”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解HTML5的History API”吧!...
    99+
    2024-04-02
  • 如何在 Python 中使用 numpy 来处理 API 数据?
    Python 是一种流行的编程语言,广泛用于数据科学、机器学习等领域。而 numpy 是 Python 中处理数值数据的核心库之一,它提供了高效的数组操作和数学函数,使得处理大规模数据变得更加容易。在本文中,我们将介绍如何使用 numpy...
    99+
    2023-09-26
    numy api leetcode
  • 如何使用ASP API来处理不同类型的数据?
    ASP API是一种常用的开发工具,它可以帮助开发人员快速构建Web应用程序。在处理不同类型的数据时,ASP API也是非常实用的。本文将介绍如何使用ASP API来处理不同类型的数据。 一、处理字符串类型的数据 在ASP API中,处理字...
    99+
    2023-07-28
    api 并发 数据类型
  • 如何在PHP中使用API和Numpy来处理数据?
    在当今的数据时代,数据处理已经成为了每个企业必备的技能。PHP作为一种流行的后端编程语言,可以与各种数据处理工具集成,包括API和Numpy。本文将介绍如何使用PHP中的API和Numpy来处理数据。 一、什么是API? API是指应用程...
    99+
    2023-06-06
    api shell numpy
  • 如何在ASP中使用API来管理数组数据?
    ASP是一种非常流行的Web开发技术,而在开发Web应用程序时,经常需要使用数组来存储和管理数据。在本文中,我们将探讨如何在ASP中使用API来管理数组数据。 首先,让我们来了解一下ASP中的数组。ASP中的数组是一种特殊的变量类型,它允许...
    99+
    2023-06-16
    数组 api 数据类型
  • 在Golang中如何设计优雅的函数API?
    在 go 中设计优雅的函数 api 需要遵循命名约定、优化参数类型、管理错误和考虑可测试性。使用命名约定明确区分函数名称和方法名称,标识 api 类别或目的。优化参数类型,使用结构体代替...
    99+
    2024-04-12
    函数设计 api设计 golang api调用
  • 如何使用ASP.NET中的API来处理数组?
    ASP.NET是一种广泛使用的Web应用程序框架,提供了许多功能强大的API,用于处理各种数据类型,包括数组。在本文中,我们将探讨如何使用ASP.NET中的API来处理数组,并通过演示代码来说明。 首先,让我们来了解一下ASP.NET中提供...
    99+
    2023-08-25
    npm 数组 api
  • 如何使用ASP和Laravel来管理索引API中的数据?
    随着互联网的发展,越来越多的数据需要被索引和管理。ASP和Laravel是两个流行的开发框架,它们可以帮助我们更方便地管理索引API中的数据。本文将介绍如何使用ASP和Laravel来管理索引API中的数据。 一、什么是索引API? 索引...
    99+
    2023-09-21
    laravel 索引 api
  • 如何通过Python API和Shell来实时管理你的数据?
    在当今信息化的时代,数据已经成为了企业和个人不可或缺的资源。而如何高效地管理这些数据,成为了许多人需要解决的问题。本文将介绍如何使用Python API和Shell来实时管理你的数据。 一、Python API的使用 Python是一种高...
    99+
    2023-07-31
    api shell 实时
  • 如何理解J2ME的Web服务API
    这篇文章将为大家详细讲解有关如何理解J2ME的Web服务API,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。你对J2ME的Web服务API是否了解,这里和大...
    99+
    2024-04-02
  • 如何通过PHP进行API的设计与开发?
    随着互联网的普及和发展,API(Application Programming Interface,应用程序接口)的概念也越来越广泛地应用在各类软件系统中。API可以定义如何与软件系统的组件进行交互,简化系统的开发和维护,并且提供了更多的可...
    99+
    2023-05-14
    PHP API (应用程序编程接口) 设计与开发
  • 如何选择适合你的Java API来处理大数据日志?
    在当今数字化时代,大数据日志的处理已成为许多企业的重要任务。Java作为一种广泛使用的编程语言,可以使用不同的API来处理大数据日志。但是,如何选择适合你的Java API是一个需要认真考虑的问题。本文将为你介绍如何选择适合你的Java A...
    99+
    2023-06-27
    大数据 日志 api
  • 如何在Go中使用API来处理不同的数据类型?
    Go语言是一种现代化的编程语言,它被广泛应用于云计算、网络编程、大数据等领域。在Go中,API是一种非常重要的概念,它可以帮助我们处理不同的数据类型。本文将介绍如何在Go中使用API来处理不同的数据类型,并提供相关演示代码。 一、什么是AP...
    99+
    2023-06-03
    api 数据类型 教程
  • 如何在PHP中使用API接口来管理数组数据?
    PHP作为一种广泛使用的服务器端编程语言,经常需要与外部API接口进行交互。在这个过程中,我们需要使用数组来存储和处理来自API接口的数据。本文将介绍如何使用PHP中的API接口来管理数组数据。 一、准备工作 在开始使用API接口管理数组数...
    99+
    2023-10-09
    api 接口 数组
  • 如何理解Kubernetes API中的Operator 和Operator Framework
    本篇文章给大家分享的是有关如何理解Kubernetes API中的Operator 和Operator Framework,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、op...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作