fuwasegu/dir-json-server

目录 JSON 服务器

v1.0.0 2024-09-17 01:35 UTC

This package is auto-updated.

Last update: 2024-09-17 01:56:32 UTC


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 服务器公开,因此基础设施层进行文件访问。