为什么很多后端写接口都不按照 restful 规范?

作者:知乎用户OTZg8B
链接:https://www.zhihu.com/question/438825740/answer/1691981151
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

RESTful 本身的缺陷

  1. RESTful 不是一种规范,而是一种风格,它不具有强制性。
  2. RESTful 定义本身包含很多“模糊性”,导致“自由发挥的空间”很大,因此各家有各家的理解,也就造就了各种“方言”。
  3. RESTful 是一种基于“资源”的接口设计形式,核心是名词。这对于只有增删改查的业务来说很合适,但现实业务并不只有增删改查。比如常见的业务有冻结/解冻等。这时候你至少会纠结这种接口应该用PATCH/PUT呢还是POST/DELETE呢?
  4. 抽象资源。所谓的抽象资源是“不直接对应数据库表的资源”。比如“登录/登出”。如果你用RPC式的接口设计,这就很直接:POST /loginPOST /logout。但是你要硬套RESTful,你就得挖空心思的想出一个抽象资源“会话”(session)。登录 = 创建会话,登出 = 销毁会话。于是你把接口设计成 POST /sessionsDELETE /sessions
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ChatGPT: API是应用程序接口的缩,它是一种用于前端和后端之间通信的技术。通常,前端会向后端发送请求,后端会返回数据给前端。学习API需要一定的编程基础,但并不一定复杂难理解。你可以通过阅读相关文档、参考示例代码、实践编API等方式来学习。 ### 回答2: API(应用程序编程接口)是一种用于不同应用程序之间进行通信的技术。它可以实现前端和后端之间的数据传输和功能调用。 通常情况下,前端通过发送HTTP请求来调用后端提供的API接口。这些请求包括HTTP方法(如GET、POST、PUT、DELETE等),以及请求的URL和数据(例如表单数据、JSON数据等)。后端接收到请求后,会根据请求的内容进行处理,然后返回对应的响应,包括HTTP状态码和数据(如HTML、JSON、XML等)。 为了学习API,你可以按照以下步骤进行: 1. 学习基础知识:了解HTTP协议和常见的API设计原则,掌握HTTP请求方法、状态码和头部信息的含义,以及URL编码和参数传递方式等。 2. 学习前端技术:熟悉HTML、CSS和JavaScript等前端开发技术,掌握通过AJAX、Fetch等技术发送HTTP请求,并处理后端返回的数据。 3. 学习后端技术:了解常见的后端开发框架(如Spring、Django、Express等),学习如何设计和实现API接口,以及如何处理前端发送的请求和返回相应的数据。 4. 实践项目:在学习过程中,可以通过实践项目来提高理解和实践能力。可以尝试使用一些开放的API接口进行数据获取和展示,或者搭建一个简单的后端服务,并通过前端调用API实现相关功能。 API本身并不复杂,但涉及的技术比较广泛,需要综合掌握前端和后端相关的知识。在学习过程中可能会遇到一些挑战,但通过坚持学习和实践,相信你会逐渐掌握API的使用和理解。 ### 回答3: API(Application Programming Interface,应用程序编程接口)是前端和后端进行通信的桥梁。它定义了前端可以使用的各种请求方法、参数、数据格式等规范,使前端和后端能够相互传递数据和执行功能。 具体来说,前端通过发送HTTP请求(如GET、POST等)或WebSocket通信与后端进行交互。在发送请求时,前端通过API文档了解请求的URL、请求头、请求参数等信息,并且可以通过在URL中传递参数或在请求体中发送数据。后端接收到请求后,解析请求并执行相应的操作,返回数据给前端。 关于学习API的方法,以下是几个建议: 1. 学习网络基础知识:了解HTTP协议和RESTful架构,这是前后端通信的基础。可以通过阅读相关书籍或在线教程加深理解。 2. 学习编程语言和框架:API的开发通常是基于某种编程语言和框架的,比如Java的Spring、Python的Django等。选择一门流行的语言和框架,学习其基本语法和相关API使用方法。 3. 阅读官方文档和示例代码:各个编程语言和框架都会有相应的官方文档。通常,这些文档提供了API的详细说明、用法示例以及相关的教程和指南,是学习API的重要资源。 4. 参考社区资源:在网络上,有许多优秀的技术论坛、博客和开源社区,其中有很多关于API的教程、案例和问题解答。参与讨论和阅读他人的经验,有助于更好地理解和运用API。 总体而言,API的学习过程是需要一定时间和经验积累的,但并不复杂且难以理解。通过系统性地学习基础知识、实践和不断探索,你能够逐渐掌握API的使用和开发技巧,提升前后端通信的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值