您的当前位置:首页>全部文章>文章详情

【PHP】REST API是什么

CrazyPanda发表于:2024-05-23 16:13:05浏览:308次TAG:

API的分类

  1. REST API(restful)

REST是Representational State Transfer(表现层状态转移)的缩写,它是由罗伊·菲尔丁(Roy Fielding)提出的

  1. 非 REST API(restless)

REST API

  1. 发送请求进行 CRUD 哪个操作由请求方式来决定

  2. 同一个请求路径可以进行多个操作

  3. 请求方式会用到 GET/POST/PUT/DELETE

非 REST API

  1. 请求方式不决定请求的 CRUD 操作

  2. 一个请求路径只对应一个操作

  3. 一般只有 GET/POST

使用json-server搭建REST接口

json-server是什么

  • 用来快速搭建 REST API 的工具包

  • source可以是json文件或者js文件

使用

详情点击

  1. 下载

npm install -g json-server
  1. 目标根目录下创建数据库 json 文件: db.json

{
	"posts": [{
		"id": 1,
		"title": "json-server",
		"author": "typicode"
	}],
	"comments": [{
		"id": 1,
		"body": "some comment",
		"postId": 1
	}],
	"profile": {
		"name": "typicode"
	}
}
  1. 启动服务器执行命令

json-server --watch db.json
  • 运行成功的界面如下

20200622111757450.png

测试

使用浏览器测试

  1. http://localhost:3000/posts

  • 普通get请求

结果

[
    {
        "id": 1,
        "title": "json-server",
        "author": "typicode"
    }
]

2. http://localhost:3000/posts/1

  • params参数

结果

{
    "id": 1,
    "title": "json-server",
    "author": "typicode"
}
  1. http://localhost:3000/posts?id=1

  • query参数

结果

[
    {
        "id": 1,
        "title": "json-server",
        "author": "typicode"
    }
]

query参数与params参数的异同

  • 相同点

    • 都能得到相应的数据内容

  • 不同点

    • query相当于对于原有的数据结构进行过滤,返回的数据结构中有数组

    • params直接返回查找到的对象

    • 得到的数据结构不同

使用axios测试

  • 调用then方法得到相应的数据

<body>
    <div>
        <button onclick="testGet()">GET 请求</button>
        <button onclick="testPost()">POST 请求</button>
        <button onclick="testPut()">PUT 请求</button>
        <button onclick="testDelete()">DELETE 请求</button>
    </div>
    <script src="https://cdn.bootcss.com/axios/0.19.0/axios.js"></script>
    <script>
        /* 1. GET 请求: 从服务器端获取数据*/
        function testGet() {
            // axios.get('http://localhost:3000/posts')
            // axios.get('http://localhost:3000/posts/1') // 获取 id 为 1 的对象
            // axios.get('http://localhost:3000/posts?id=1&id=2') // 获取 id 为1 或 2 的数组
            axios.get('http://localhost:3000/posts?title=json-server&author=typicode')
        }
        /* 2. POST 请求: 向服务器端添加新数据*/
        function testPost() {
            axios.post('http://localhost:3000/posts', {
                title: 'xxx', author: 'yyyy'
            }) // 保存数据
        }
        /* 3. PUT 请求: 更新服务器端已经数据 */
        function testPut() {
            axios.put('http://localhost:3000/comments/1', {
                body: 'yyy', postId: 2
            })
        }
        /* 4. DELETE 请求: 删除服务器端数据 */
        function testDelete() {
            axios.delete('http://localhost:3000/comments/1')
        }
    </script>
</body>

对于测试POST请求的说明

当我们发送post请求添加数据的时候

  • id为我们自动生成,不需要我们指定

  • 如果post请求成功,我们打开db.json就会发现新增加的数据

20200622111757450.png

对于PUT/DELETE请求相同,我们通过db.json都能观察到相应数据的改变

猜你喜欢

【PHP】php单例模式的应用场景有哪些
php单例模式的应用场景有数据库连接、缓存管理、日志记录、配置管理、对象工厂和全局状态管理等。详细介绍:1、数据库连接,在一个PHP应用程序中,通常需要与数据库进行交互,为了避免频繁地创建和销毁数据库连接,可以使用单例模式来创建一个数据库连接类,并确保只有一个数据库连接实例存在,这样可以减少资源的消耗,并提高数据库操作的效率;2、缓存管理,缓存是一种常见的性能优化手段等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。单例模式是一种常见的设计模式,
发表于:2023-12-06 浏览:396 TAG:
【PHP】PHP生成ICO图标的方法
本篇文章给大家介绍一下使用php生成ico图标的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。ico图标在每个网站中都需要用到的,使用方法也是很简单的,基本上以下面的方式为主,但也有其他的方式。&lt;link&nbsp;rel=&quot;shortcut&nbsp;icon&quot;&nbsp;href=&quot;/favicon.ico&quot;&gt;一般将ico图标放置在网站的根目录下,使用时可以使用相对路径,也可以使用绝对路径来引入,这个没有明确的规定。
发表于:2024-01-30 浏览:309 TAG:
【PHP】php常用的第三方类库有哪些
hp常用的第三方类库有laravel、symfony、guzzle、phpunit、monolog、swift mailer、phpexcel、carbon、doctrine、phpmailer等。详细介绍:1、laravel是一个流行的php框架,提供了丰富的功能和工具,用于快速构建web应用程序,它包含了许多常用的类库,例如路由、数据库访问、模板引擎、身份验证等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。在PHP开发中,有许多常用的第三方类库可以
发表于:2024-03-17 浏览:295 TAG:
【PHP】制作自己的Composer插件并与其他开发者共享
如何编写自己的Composer插件并分享给其他开发者在现代的PHP开发领域,Composer已经成为了一个不可或缺的工具。它可以帮助开发者管理项目依赖和自动加载类,大大简化了项目的构建过程。除了使用Composer来安装第三方的扩展包之外,我们也可以使用Composer来编写自己的插件,并将其分享给其他开发者。本文将逐步介绍如何编写自己的Composer插件,并提供具体的代码示例。首先,我们需要创建一个空的Composer插件项目。在命令行中进入项目根目录,然后执行以下命令:compo
发表于:2023-12-27 浏览:355 TAG:
【PHP】ThinkPHP5.0 Restful API 开发
一、要学习什么是 RESTful API 首先我们得明白什么是REST?简单来说:REST是所有Web应用都应该遵守的架构设计指导原则。 英文全词Representational State Transfer,翻译是”表现层状态转化”。面向资源 是REST最明显的特征,对于同一个资源的一组不同的操作。资源是服务器上一个可命名的抽象概念,资源是以名词为核心来组织的,首先关注的是名词。REST要求,必须通过统一的接口来对资源执行各种操作。对于每个资源只能执行一组有限的操作。(7个HTTP方法:GET
发表于:2024-05-24 浏览:249 TAG:
【PHP】ThinkPHP如何防止SQL注入攻击
在ThinkPHP中,参数绑定是一种安全的方式,用于处理用户输入,特别是在构建数据库查询时。参数绑定可以防止SQL注入攻击,因为绑定的参数会被自动转义,而不是直接插入到SQL语句中。以下是在ThinkPHP中使用参数绑定的一些建议。1. 控制器中的参数绑定:在控制器中,可以使用bind方法进行参数绑定。以下是一个简单的示例:public&nbsp;function&nbsp;index($id) { &nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;=&nbsp;Db::
发表于:2024-01-04 浏览:336 TAG:
【PHP】php代码规范七大原则
hp代码规范七大原则包括一致性、可读性、简洁性、可复用性、可测试性、安全性和性能。详细介绍:1、一致性,代码应该保持一致性,即在整个代码库中使用相同的命名规范、缩进风格、代码注释等,这样可以使团队成员更容易理解和阅读代码,减少出错和混淆的可能性;2、可读性,代码应该易于阅读和理解,为了提高可读性,可以使用有意义的变量和函数命名,避免使用过于复杂的表达式和嵌套结构等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。在PHP开发中,遵循良好的代码规范是非常重要
发表于:2024-03-17 浏览:307 TAG:
【PHP】php修改文件扩展名
PHP是一门广泛使用的服务器端脚本语言,许多web应用程序都是使用PHP开发的。在开发PHP应用程序时,可能需要对文件进行操作,比如修改文件扩展名。下面将介绍PHP如何修改文件扩展名。在PHP中,可以使用rename()函数来重命名文件。rename()函数接受两个参数:原文件名和新文件名。新文件名可以是原文件名的任何副本,只需要修改文件名的扩展名就可以了。下面是一个简单的例子,展示如何将文件扩展名从“.txt”修改为“.html”:$old_file_name&nbsp;=&amp;nbs
发表于:2023-12-20 浏览:326 TAG:
【PHP】php在数组后面增加一列
在 PHP 中,要在数组后面增加一列,我们可以采用 array_push() 函数或直接赋值的方式来实现。下面我们来介绍一下这两种方法。方法一:使用 array_push() 函数array_push() 函数可将一个或多个元素添加到数组末尾,我们可以利用此函数在数组后面增加一列。具体实现的方式如下:&lt;?php //&nbsp;定义一个数组 $oldArr&nbsp;=&nbsp;array( &nbsp;&nbsp;&nbsp;&nbsp;array(&#39;name&amp;#39
发表于:2023-12-18 浏览:337 TAG:
【PHP】php如何将utf8转gbk编码
随着互联网的发展,跨语言交流和国际化成为了越来越普遍的需求。由于不同的编码方式,网站之间的数据传输和处理也变得越来越复杂。在这个过程中,一些老旧的编码方式依然在使用,比如GBK编码。为了兼容各种编码方式,php提供了一些内置函数来进行编码转换,本文将介绍如何将utf8编码转换成GBK编码。一、了解编码首先,我们需要了解utf8和GBK编码分别是什么。utf8是一种可变长度的字符编码,是国际标准化组织ISO的一部分,也是Unicode字符集的一种实现方式。utf8编码可以容纳所有Unic
发表于:2023-12-20 浏览:328 TAG: