emmanuel-ba / aramis
Requires
- php: >=5.5.9
- doctrine/doctrine-bundle: ^1.6
- doctrine/doctrine-cache-bundle: ^1.2
- doctrine/orm: ^2.5
- friendsofsymfony/rest-bundle: @dev
- incenteev/composer-parameter-handler: ^2.0
- jms/serializer-bundle: @dev
- sensio/distribution-bundle: ^5.0
- sensio/framework-extra-bundle: ^3.0.2
- symfony/monolog-bundle: ^2.8
- symfony/polyfill-apcu: ^1.0
- symfony/symfony: 3.1.*
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-18 19:28:47 UTC
README
包含什么?
使用 Symfony 3.1、FosRestBundle 和 JMSSerializerBundle 开发的 RESTful API。目的是处理一组基本的汽车信息。
安装
确保已安装 MySQL 和 PHP >=5.5.9。
-
选择您喜欢的 Composer 获取方式。
-
安装项目
php composer.phar create-project emmanuel-ba/aramis aramis -sdev
安装过程中将提示数据库凭证
- 创建数据库
cd aramis
php bin/console doctrine:database:create
php bin/console doctrine:schema:update --force
您也可以使用提供的 MySQL 导出文件(aramis.sql)。
- 加载固定数据
php bin/console doctrine:fixtures:load
- 使用 phpunit 运行测试
phpunit
- 使用 Symfony 命令启动 PHP 内置的 Web 服务器
php bin/console server:run
API 应该在 https://:8000 可用
测试 API
使用 Postman 进行快速测试
您需要安装 Postman。请查看 Chrome 扩展程序
- 在 Postman 中加载提供的环境和集合
- 环境:Aramis.postman_collection.json
- 集合:TEST.postman_environment.json
在集合上运行测试
应该有 22 个测试通过
使用 curl 进行手动测试
- GET cars(预期响应代码 200)
curl -X GET -H "Cache-Control: no-cache" "https://:8000/cars"
- GET car(预期响应代码 200)
curl -X GET -H "Cache-Control: no-cache" "https://:8000/car/1"
- POST car(预期响应代码 201)
curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{"car" : { "maker" : "Seat", "model" : "Leon", "price" : 15000, "option" : [{"name" : "Spoiler"}, {"name" : "GPS"}], "equipment" : [{"name" : "ABS"}, {"name" : "Turbo"}] } }' "https://:8000/car"
- 无效的 POST car(预期响应代码 400)
curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{"car" : { "model" : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "price" : 15000, "option" : [{"name" : "Spoiler"}, {"name" : "GPS"}], "equipment" : [{"name" : "ABS"}, {"name" : "Turbo"}] } }' "https://:8000/car"
- PUT car(预期响应代码 204)
curl -X PUT -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{"car" : { "maker" : "Audi", "model" : "Q7", "price" : 75000, "option" : [{"name" : "Camera recul"}, {"name" : "Pack cuir"}], "equipment" : [{"name" : "Boite auto"}, {"name" : "Climatisation"}] } }' "https://:8000/car/3"
- 无效的 PUT car(预期响应代码 400)
使用curl命令执行PUT操作,请求头包括"Content-Type: application/json"和"Cache-Control: no-cache",请求数据为{"car" : {"maker" : "Audi", "model" : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "price" : 75000, "option" : [{"name" : "倒车摄像头"}, {"name" : "真皮座椅套装"}], "equipment" : [{"name" : "自动变速箱"}, {"name" : "空调"}]}},请求地址为https://:8000/car/3
- PATCH操作车辆(预期返回状态码204)
使用curl命令执行PATCH操作,请求头包括"Content-Type: application/json"和"Cache-Control: no-cache",请求数据为{"car" : {"model" : "Q5"}},请求地址为https://:8000/car/3
无效的PATCH操作:(预期返回状态码400)
使用curl命令执行PATCH操作,请求头包括"Content-Type: application/json"和"Cache-Control: no-cache",请求数据为{"car" : {"model" : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx"}},请求地址为https://:8000/car/3
删除一辆车:(预期返回状态码204)
使用curl命令执行DELETE操作,请求头包括"Cache-Control: no-cache",请求地址为https://:8000/car/3