首页 > 其他分享 >RESTful API介绍

RESTful API介绍

时间:2024-09-01 10:36:48浏览次数:4  
标签:URI 介绍 API 动词 POST RESTful book

RESTful API介绍

理解RESTful架构 - 阮一峰的网络日志 (ruanyifeng.com)

概念

REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”或“表现层状态转化”。

总结一下什么是RESTful架构:

  1. 每一个URI代表一种资源(一段文本、一张图片、一首歌曲、一种服务);

  2. 客户端和服务器之间,传递这种资源的某种表现层;

  3. 客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

    • GET 用来获取资源

    • POST 用来新建资源

    • PUT 用来更新资源

    • DELETE 用来删除资源

只要API程序遵循了REST风格,那就可以称其为RESTful API。目前在前后端分离的架构中,前后端基本都是通过RESTful API来进行交互。

误区

RESTful架构有一些典型的设计误区。

最常见的一种设计错误,就是URI包含动词。因为"资源"表示一种实体,所以应该是名词,URI不应该有动词,动词应该放在HTTP协议中。

举例来说,某个URI是/posts/show/1,其中show是动词,这个URI就设计错了,正确的写法应该是/posts/1,然后用GET方法表示show。

如果某些动作是HTTP动词表示不了的,你就应该把动作做成一种资源。比如网上汇款,从账户1向账户2汇款500元,错误的URI是:

  POST /accounts/1/transfer/500/to/2

正确的写法是把动词transfer改成名词transaction,资源不能是动词,但是可以是一种服务:

  POST /transaction HTTP/1.1
  Host: 127.0.0.1
  
  from=1&to=2&amount=500.00

示例

例如,我们现在要编写一个管理书籍的系统,我们可以查询对一本书进行查询、创建、更新和删除等操作,我们在编写程序的时候就要设计客户端浏览器与我们Web服务端交互的方式和路径。按照经验我们通常会设计成如下模式:

请求方法 URL 含义
GET /book 查询书籍信息
POST /create_book 创建书籍记录
POST /update_book 更新书籍信息
POST /delete_book 删除书籍信息

同样的需求我们按照RESTful API设计如下:

请求方法 URL 含义
GET /book 查询书籍信息
POST /book 创建书籍记录
PUT /book 更新书籍信息
DELETE /book 删除书籍信息

标签:URI,介绍,API,动词,POST,RESTful,book
From: https://www.cnblogs.com/3to4/p/18391073

相关文章

  • eureka原理与实践简单介绍
    目录@[TOC](目录)前言一、Eureka原理二、Eureka实践总结前言Eureka是Netflix开发的一个服务发现框架,广泛应用于微服务架构中。它通过提供服务的自动注册与发现机制,简化了服务间的依赖管理,提高了系统的灵活性和可扩展性。以下将从Eureka的原理和实践两个方面进行详细......
  • 实现UDP可靠性传输(KCP介绍使用)
    1、TCP协议介绍TCP协议是基于IP协议,面向连接,可靠基于字节流的传输层协议1、基于IP协议:TCP协议是基于IP协议之上传输的,TCP协议报文中的源端口+IP协议报文中的源地址+TCP协议报文中的目标端口+IP协议报文中的目标地址,组合起来唯一确定一条TCP连接。2、面向连接:与UDP不同,TCP在传输数......
  • 自我介绍+软工5问
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13228这个作业的目标<学习到软件工程的具体内涵以及提升兴趣>自我介绍介绍你自己,我是来自广工的计科的......
  • 自我介绍
    这个作业属于哪个课程计科22级34班这个作业要求在哪里作业要求这个作业的目标<创建博客,注册Github,自我介绍>自我介绍我叫阿卜杜扎伊尔·艾则孜,来自新疆喀什的,在读广东工业大学计算机学院,平时喜欢踢球之类的活动。性格开朗,喜欢探索新事物。在学术上追求卓越,同时......
  • 自我介绍+软工5问
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13228这个作业的目标学会创建博客、发布博客,开通github账户并且创建公共仓库。进行自我介绍,了解课程内容。......
  • GSM 远古2G时代辅同步信号SCH介绍,MATLAB实现
    本期介绍一下远古时代GSM2G辅同步信号SCH,对比一下当下时代4G和5G的辅同步信号SSS,看下无线通信经历了几十年的发展,辅同步信号的变化,众所周知,GSM2G是一个时域时代,除了FCCH其他的信道都要在时域处理,而4G和5G是一个频域的时代,除了初搜PSS其他的信道的处理都要转到频域处理,跟GSM系......
  • 5G NR 辅同步信号SSS介绍 MATLAB实现
    5GNR辅同步信号SSS,和PSS一起包含了小区的全部ID信息,跟NBIOT和LTE不一样,PSS和SSS并不携带任何的帧信息,只携带帧头同步信息,所以搜索完成PSS和SSS并不知道当前的slot号和帧号,在5GNR中,PSS和SSS要携带1008个小区ID信息,要比LTE的小区个数多一倍,此外SSS信号还要参与RSRP的测量以及P......
  • 自我介绍
    这个作业属于哪个课程计科2班这个作业要求在哪里作业要求这个作业的目标<你理解的作业目标具体内容>自我介绍Hello,我叫艾则卜拉·买买提艾力,来自离广州4000多千米远的新疆(中国日落最晚的城市喀什),现在就读于广东工业大学,是22级计算机科学与技术2班的一名学......
  • 自我介绍+软工五问
    |这个作业属于哪个课程|计科22级12班||这个作业要求在哪里|作业要求的链接||这个作业的目标|自我介绍;快速阅读教材,提出5个你想弄懂的问题;回答在软件工程导论这门课想收获什么;在GitHub新建一个与自己GitHubID一致的仓库|自我介绍:我是来自广东工业大学的计算......
  • 自我介绍+软工5问
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13228这个作业的目标学会使用博客园中markdown排版编写随笔自我介绍我是计科三班的何其浚,广州本地仔,......