什么是RESTful API

什么是RESTful API

REST,即Representational State Transfer的缩写。直接翻译的意思是”表现层状态转化”。
它是一种互联网应用程序的API设计理念:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

产生背景

近年来移动互联网的发展,前端设备层出不穷(手机、平板、桌面电脑、其他专用设备……),因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信,于是RESTful诞生了,它可以通过一套统一的接口为 Web,iOS和Android提供服务。

什么是RESTful API

图片.png

URI

即统一资源标识符,服务器上每一种资源,比如文档、图像、视频片段、程序 都由一个通用资源标识符(Uniform Resource Identifier, 简称”URI”)进行定位。

HTTP动词

常用的HTTP动词有下面五个

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
  • DELETE(DELETE):从服务器删除资源。

RESTful架构

服务器上每一种资源,比如一个文件,一张图片,一部电影,都有对应的url地址,如果我们的客户端需要对服务器上的这个资源进行操作,就需要通过http协议执行相应的动作来操作它,比如进行获取,更新,删除。

简单来说就是url地址中只包含名词表示资源,使用http动词表示动作进行操作资源
举个例子:左边是错误的设计,而右边是正确的

GET /blog/getArticles --> GET /blog/Articles  获取所有文章
GET /blog/addArticles --> POST /blog/Articles  添加一篇文章
GET /blog/editArticles --> PUT /blog/Articles  修改一篇文章 
GET /rest/api/deleteArticles?id=1 --> DELETE /blog/Articles/1 删除一篇文章

链接:https://www.jianshu.com/p/6baf8554b3f4

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112524.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月6日 上午8:00
下一篇 2021年11月6日 上午9:00


相关推荐

  • 向用户、竞争对手学习,是360的微创新之源 ( 转发自周鸿祎博客 )

    向用户、竞争对手学习,是360的微创新之源 ( 转发自周鸿祎博客 )写道现在,我说一说360的微创新,这是我这么多年来做互联网产品的一个总结,对我来说是方法论,希望能跟朋友们分享,切磋。我记得比尔-盖茨有一句话,大意是他愿意为微软一直服务下去,因为他喜欢跟一群聪明人打交道。跟聪明人在一起交流是快乐的,大家都是聪明人,大拿不少,即使拍砖也能拍出水平。闲话少叙,言归正传。但提前说明一下,这篇博文牵涉到一些产品功能,不感兴趣的同志可以掠过。2008年7月

    2022年7月26日
    12
  • PO模式之无模式

    PO模式之无模式目标1.深入理解方法封装的思想2.能够使用方法封装的思想对代码进行优化3.深入理解PO模式的思想4.熟练掌握PO模式的分层思想PO模式学习思路采用版本迭代的方式来学习,便于对不同版本的优缺点进行对比和理解。V1:不使用任何设计模式和单元测试框架V2:使用UnitTest管理用例V3:使用方法封装的思想,对代码进行优化…

    2022年5月30日
    58
  • Java开发谈:2021Java高级面试题及答案

    Java开发谈:2021Java高级面试题及答案前言最近一段时间发现经常看到很多人,对Spring源码比较感兴趣,日常开发中,无论你做什么什么项目,大部分都离不开Spring生态的那一套东西,所以很多人对Spring底层源码实现很感兴趣,但是有些从来没有接触过源码的开发者,在看Spring源码的过程中确实及其难受的,为什么,大部分人看源码基本都是debug一点一点去看的,最后发现,越追越离谱,越追越深,到最后都追到JDK源码了,也没有明白是什么意思!对于学习源码,我的看法是,先去完全的熟悉它的用法,想一下如果让你来实现,你会怎么实现!有了这些想法之后

    2022年7月18日
    18
  • 【算法题】单例模式的8种实现方式(java版)「建议收藏」

    【算法题】单例模式的8种实现方式(java版)「建议收藏」根据马士兵老师的视频整理下来的8种单例模式的实现方式,在此记录一下。代码示例1:饿汉式packagecom.examples.singleton;publicclassMgr01{publicstaticvoidmain(String[]args){Mgr01m1=Mgr01.getInstance();Mgr01m2=Mgr01.getInstance();System.out.println(m1…

    2022年7月8日
    23
  • 【JAVA定时器】四种常见定时器的原理和简单实现

    【JAVA定时器】四种常见定时器的原理和简单实现个人学习笔记分享,当前能力有限,请勿贬低,菜鸟互学,大佬绕道如有勘误,欢迎指出和讨论,本文后期也会进行修正和补充前言定时器顾名思义,即定时触发某个事件,分离开来,即包含三个因素:定时,触发,某个事件,本文也将以此为基础介绍五种常见的定时器本文只做基于SpringBoot的示例,其余版本的请自行查阅资料,大同小异1.介绍1.1.目的定时器的目的即为了在某个时间点,程序自身主动触发某个事件,而不需要外力去开启或者启动,以节省人力并统一管理1.2.示例场景管理系统,需要每日12点.

    2022年7月8日
    18
  • 科技前哨|KIMI K2火遍外网:月之暗面逆袭了吗?

    科技前哨|KIMI K2火遍外网:月之暗面逆袭了吗?

    2026年3月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号