sci3ma/sf4-api-versioning

Symfony Framework v4 上的 API 版本化示例

dev-master 2019-03-15 07:27 UTC

This package is auto-updated.

Last update: 2024-09-15 19:52:43 UTC


README

Symfony Framework v4 上的 API 版本化示例

使用其他包

  • friendsofsymfony/rest-bundle
  • jms/serializer-bundle
  • sci3ma/sf4grumphp (可选)

创建项目步骤

  1. 为控制器路由创建 Resource/config/api_routing.yaml
  2. Resource/config/api_routing.yaml 包含到 config/routes.yaml
    1. 添加带有 version 参数的正确前缀
    2. .env 文件中添加可用的/支持的版本
  3. 创建具有属性的实体
    1. id
    2. name
    3. age
    4. color
  4. 创建控制器并定义 RESTful 操作

运行项目

  1. 运行内置的 PHP 服务器 bin/console server:start
  2. 访问
    1. [GET] 127.0.0.1:8000/api/v1.1/godzillas/1 并查看带有属性的响应
      1. id
      2. name
      3. age
    2. [GET] 127.0.0.1:8000/api/v1.2/godzillas/1 并查看带有属性的响应
      1. id
      2. name
      3. age
      4. color
    3. [GET] 127.0.0.1:8000/api/v1.3/godzillas/1 并查看带有属性的响应
      1. id
      2. name
      3. age
      4. full_name - 这是一个虚拟属性
  3. 类似于上面的示例
    1. [GET] http://127.0.0.1:8000/api/v1.1/godzillas
    2. [GET] http://127.0.0.1:8000/api/v1.2/godzillas
    3. [GET] http://127.0.0.1:8000/api/v1.3/godzillas

结论

API 版本化的主要目标是更新/更改响应结构,同时保持旧版本不变。