saunarame / php-json-server
支持使用JSON格式文件的REST API。
V0.3.2
2021-02-13 20:31 UTC
Requires
- php: ^7.3
- components/bootstrap: ^4.4
- components/jquery: ^3.4
- laminas/laminas-component-installer: ^2.4
- laminas/laminas-development-mode: ^3.2
- laminas/laminas-mvc: ^3.1.1
Requires (Dev)
- laminas/laminas-developer-tools: ^2.0
- laminas/laminas-test: ^3.4
- phpmd/phpmd: ^2.8
- squizlabs/php_codesniffer: ^3.5
README
php-json-server
是一个PHP RESTful API。数据可以以json格式写入,你可以轻松地设置RESTful API模拟服务器。
安装和启动
使用 Composer 进行安装和服务器启动。
# install
$ composer create-project sawarame/php-json-server path/to/install
安装完成后,你可以使用PHP内置服务器启动 php-json-server
。
# Startup with PHP build-in server $ cd path/to/install $ composer run --timeout 0 serve
然后访问 https://:8080/。如果显示欢迎页面,则安装和启动成功。
准备数据
将数据文件保存到以下路径。
path/to/install/data/db/schema_name.json
文件名中的 schema_name
用于数据名称。数据名称可以是任何名称,并且可以以不同的名称保存多个数据。初始状态下有一个 sample.json
。
[ { "id": 1, "name": "Red", "code": "#ff0000" }, { "id": 2, "name": "Green", "code": "#00ff00" }, { "id": 3, "name": "Blue", "code": "#0000ff" } ]
数据必须以JSON格式的数组形式写入。数据结构是任意的,但必须包含 id
列。
读取数据
要获取名为 schema_name
的数据,使用GET方法访问以下URL。
$ curl -X GET 'https://:8080/schema_name'
默认每页数据行数为20。如果你想更改它,请使用 rows
参数。
$ curl -X GET 'https://:8080/schema_name?rows=10'
如何更改页面使用 page
参数。
$ curl -X GET 'https://:8080/schema_name?page=2'
你可以使用列名作为参数进行搜索。
$ curl -X GET 'https://:8080/schema_name?name=Green'
通常,当指定多个参数时,搜索将是一个AND条件。如果你想使用OR条件搜索,请使用 or
修改 search_type
参数。
$ curl -X GET 'https://:8080/sample?name[]=Red&name[]=Green&search_type=or'
响应头
响应头包含有关分页的信息。
查找行
以下示例接收具有 id
列值为123的数据。
$ curl -X GET 'https://:8080/schema_name/123'
插入行
使用POST方法插入数据。
$ curl -X POST 'https://:8080/schema_name' \ -H 'Content-Type: application/json' \ --data-raw '{"name":"Gray","code":"#808080"}'
将返回创建的数据。
{"id":4,"name":"Gray","code":"#808080"}
更新行
使用PUT方法更新数据。
$ curl -X PUT 'https://:8080/schema_name/2' \ -H 'Content-Type: application/json' \ --data-raw '{"name":"Yellow","code":"#FFFF00"}'
将返回更新后的数据。
{"id":2,"name":"Yellow","code":"#FFFF00"}
删除行
使用DELETE方法删除数据。
$ curl -X DELETE 'https://:8080/schema_name/4'
将返回删除的数据。
{"id":4,"name":"Gray","code":"#808080"}