fuwasegu / dir-json-server
目录 JSON 服务器
v1.0.0
2024-09-17 01:35 UTC
Requires
- php: ^8.3
- react/http: ^1.10
- symfony/yaml: ^6.0
Requires (Dev)
- phpunit/phpunit: ^11.0
README
这是一个用于将静态目录结构作为 JSON 服务器公开的工具。通过将需要返回的响应配置为 JSON 文件,可以轻松公开返回该 JSON 文件的 API。
安装
composer require --dev fuwasegu/dir-json-server
规格
contents/
中配置的 JSON 文件作为 API 公开。但是,根目录可以通过下面的 yaml 文件进行更改。相应目录直接下为 API 的基本路径,该路径下的 JSON 文件直接作为响应。
请务必将 JSON 文件配置为 response.json
。
本工具仅支持 GET。
使用示例
假设内容目录如下配置。
contents/
users/
1/
profile/
response.json
此外,假设 contents/users/1/profile/response.json
中有以下 JSON 数据配置。
{
"id": 1,
"name": "John Doe"
}
这时,访问 GET https:///users/1/profile
,
{
"id": 1,
"name": "John Doe"
}
将返回这样的响应。
也就是说,
- contents/ 作为默认的路由,其直接下为 URL 的路径
- 将希望作为响应的数据配置为 response.json
- 路径参数或查询参数无法使用
- 可以通过将路径参数作为目录名来实现
响应
关于响应的 ContentType,
- 默认为 application/json。
- 仅当路由路径为 HTML 时,将返回 text/html。
启动服务器的方法
./dir-json serve
检查可用的路由
通过浏览器访问 localhost:8000,将显示可用路由的列表。这里将以 HTML 的形式显示。
路由将以项目符号的形式显示,点击可以访问该路由。
API 响应
基本上,存在目录末尾配置的 JSON 文件将直接作为响应返回。如果没有在目录末尾配置 JSON 文件,将返回状态码 404。此时,将返回以下 json。
{
"status": "error",
"message": "File not found",
"path": "contents/users/2/profile/response.json"
}
默认路由目录和端口号的设置更改
默认的路径目录和端口号可以通过 dir-json.yaml
文件进行更改。
root_path: 'contents'
port: 8000
设计
采用技术
- PHP 8.3
- Composer
目录结构
本项目具有以下目录结构(部分省略)
root/
contents/
public/
index.php
src/
composer.json
- contents/: 配置内容目录
- public/: 公开目录。此目录中包含 index.php,它是入口点
- src/: 配置服务器代码的目录
- composer.json: 管理依赖关系的文件
命名空间
如 composer.json 中定义的,src/ 下的文件配置在 App\ 命名空间下。
架构
本项目基本上采用清洁架构。
本应用程序不使用数据库,而是使用静态目录结构作为 JSON 服务器公开,因此基础设施层进行文件访问。