RESTful_URI资源

简介: 目录目录RESTful的资源URI 标识资源URL 定位资源URI与URL的区别为什么使用资源的概念对资源的操作URI的设计RESTful的资源在RESTful基础知识篇中,介绍了资源是存在于业务逻辑层中的概念实体(如:应用程序对象、数据库记录、算法、HTML、视频图像等),它会在表现层中被确定,并最终由表现层将资源向自动化客户端以URI的形式公开。

目录

RESTful的资源

在RESTful基础知识篇中,介绍了资源是存在于业务逻辑层中的概念实体(如:应用程序对象、数据库记录、算法、HTML、视频图像等),它会在表现层中被确定,并最终由表现层将资源向自动化客户端以URI的形式公开。可以简单的将资源理解为公开的URI,在客户端中可以通过URI来对资源进行操作。所以首先我们必须理解URI的意义。

URI 标识资源

URI(uniform resource identifier,统一资源标识符):唯一的标识一个资源。URI的组成部分如下:
1. 访问资源的协议
2. 资源所在的Host
3. 在Host中资源的路径(定义了某一个资源)
Example:

http://www.jmilk.com//Jpython
  1. 这是一个通过HTTP协议来访问的资源
  2. 存放资源的Host为www.jmilk.com
  3. 在Host中资源的路径为/Jpython

URL 定位资源

URL(uniform resource locator,统一资源定位器):URL是一种具体的URI(URL是URI的子集),即URL在标识了一个资源的同时,并且还指明了如何定位到这个资源。URL的组成部分如下:
1. 访问资源的协议
2. 存放资源的Host
3. 资源在Host中的定位(定位到某一个具体的资源单位)
格式:

protocol :// hostname[:port] / path / [;parameters][?query]#fragment

Example:

http://img4.imgtn.bdimg.com/it/u=3215216746,1883997400&fm=21&gp=0.jpg
  1. 这是一个通过HTTP协议来访问的资源
  2. 存放此资源的Host为img4.imgtn.bdimg.com
  3. 被定位到的资源为:0.jpg

URI与URL的区别

通过上述的例子如果还不能很好的区别两者,那么简而言之:
URI(定义、标识)表示请求服务器的路径,在这个路径下定义了这么一个资源。
URL(定位)表示请求服务器的路径,并在这个路径下能够访问、获取、操作这么一个资源。

为什么使用资源的概念

资源对一个事物的高度抽象,系统中的一切都可以抽象为资源,例如:

用户--> http://example.com/user
商品--> http://example.com/product/1

有了资源的概念后,我们可以通过Server向Client公开的URI来唯一的访问一个资源。符合松耦合、关注服务对象的RESTful设计理念

对资源的操作

对资源的操作包括获取、创建、修改和删除资源,这些操作对应了HTTP协议提供的GET、POST、PUT和DELETE方法。所以当我们从自动化客户端发起无状态请求时,需要在请求的头部包含有这些方法,最终通过URI和方法的组合来对Server中的资源进行操作。

URI的设计

一个URI到底是不是资源并不是由网址链接来决定,而是由这个URI的实际功能来决定,网址只是一个串符号。而且一个好的URI,能够对资源进行合理的描述,用户可以更直观的理解这个资源的功能作用。下面给出例子:
/resources/142是好的URI,它看起来像是一个事物。
/resources/142/get则不是好的URI,因为它看起来更像是一个动作,只有事物才符合资源的定义。
所以要想符合RESTFul风格的设计,你的URI中应该都是名词,表示一个事物,而非动词。

相关文章
|
算法 数据库
|
5月前
|
缓存 安全 API
RESTful与GraphQL:电商API接口设计的技术细节与适用场景
本文对比了RESTful与GraphQL这两种主流电商API接口设计方案。RESTful通过资源与HTTP方法定义操作,简单直观但可能引发过度或欠获取数据问题;GraphQL允许客户端精确指定所需字段,提高灵活性和传输效率,但面临深度查询攻击等安全挑战。从性能、灵活性、安全性及适用场景多维度分析,RESTful适合资源导向场景,GraphQL则适用于复杂数据需求。实际开发中需根据业务特点选择合适方案,或结合两者优势,以优化用户体验与系统性能。
|
5月前
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
8月前
|
XML JSON API
Understanding RESTful API and Web Services: Key Differences and Use Cases
在现代软件开发中,RESTful API和Web服务均用于实现系统间通信,但各有特点。RESTful API遵循REST原则,主要使用HTTP/HTTPS协议,数据格式多为JSON或XML,适用于无状态通信;而Web服务包括SOAP和REST,常用于基于网络的API,采用标准化方法如WSDL或OpenAPI。理解两者区别有助于选择适合应用需求的解决方案,构建高效、可扩展的应用程序。
|
8月前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
|
12月前
|
JSON 缓存 JavaScript
深入浅出:使用Node.js构建RESTful API
在这个数字时代,API已成为软件开发的基石之一。本文旨在引导初学者通过Node.js和Express框架快速搭建一个功能完备的RESTful API。我们将从零开始,逐步深入,不仅涉及代码编写,还包括设计原则、最佳实践及调试技巧。无论你是初探后端开发,还是希望扩展你的技术栈,这篇文章都将是你的理想指南。
|
11月前
|
JSON JavaScript 前端开发
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将引导您步入Node.js的奇妙世界,通过实践操作,掌握如何使用这一强大的JavaScript运行时环境构建高效、可扩展的RESTful API。我们将一同探索Express框架的使用,学习如何设计API端点,处理数据请求,并实现身份验证机制,最终部署我们的成果到云服务器上。无论您是初学者还是有一定基础的开发者,这篇文章都将为您打开一扇通往后端开发深层知识的大门。
255 12