emmanuel-ba / aramis

安装: 13

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 0

分支: 0

开放性问题: 0

类型:项目

dev-master 2016-08-14 12:45 UTC

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。

  1. 选择您喜欢的 Composer 获取方式。

  2. 安装项目

php composer.phar create-project emmanuel-ba/aramis aramis -sdev

安装过程中将提示数据库凭证

  1. 创建数据库

cd aramis

php bin/console doctrine:database:create

php bin/console doctrine:schema:update --force

您也可以使用提供的 MySQL 导出文件(aramis.sql)。

  1. 加载固定数据

php bin/console doctrine:fixtures:load

  1. 使用 phpunit 运行测试

phpunit

  1. 使用 Symfony 命令启动 PHP 内置的 Web 服务器

php bin/console server:run

API 应该在 https://:8000 可用

测试 API

使用 Postman 进行快速测试

您需要安装 Postman。请查看 Chrome 扩展程序

  1. 在 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