sci3ma / sf4-api-versioning
Symfony Framework v4 上的 API 版本化示例
dev-master
2019-03-15 07:27 UTC
Requires
- php: ^7.1.3
- ext-ctype: *
- ext-iconv: *
- friendsofsymfony/rest-bundle: ^2.5
- jms/serializer-bundle: ^3.1
- sensio/framework-extra-bundle: ^5.2
- symfony/console: 4.2.*
- symfony/dotenv: 4.2.*
- symfony/flex: ^1.1
- symfony/framework-bundle: 4.2.*
- symfony/orm-pack: ^1.0
- symfony/yaml: 4.2.*
Requires (Dev)
- sci3ma/sf4grumphp: ^1.1
- symfony/maker-bundle: ^1.11
- symfony/profiler-pack: ^1.0
- symfony/web-server-bundle: 4.2.*
Conflicts
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 (可选)
创建项目步骤
- 为控制器路由创建
Resource/config/api_routing.yaml
- 将
Resource/config/api_routing.yaml
包含到config/routes.yaml
- 添加带有
version
参数的正确前缀 - 在
.env
文件中添加可用的/支持的版本
- 添加带有
- 创建具有属性的实体
- id
- name
- age
- color
- 创建控制器并定义 RESTful 操作
运行项目
- 运行内置的 PHP 服务器
bin/console server:start
- 访问
[GET] 127.0.0.1:8000/api/v1.1/godzillas/1
并查看带有属性的响应- id
- name
- age
[GET] 127.0.0.1:8000/api/v1.2/godzillas/1
并查看带有属性的响应- id
- name
- age
- color
[GET] 127.0.0.1:8000/api/v1.3/godzillas/1
并查看带有属性的响应- id
- name
- age
- full_name - 这是一个虚拟属性
- 类似于上面的示例
[GET] http://127.0.0.1:8000/api/v1.1/godzillas
[GET] http://127.0.0.1:8000/api/v1.2/godzillas
[GET] http://127.0.0.1:8000/api/v1.3/godzillas
结论
API 版本化的主要目标是更新/更改响应结构,同时保持旧版本不变。