【发布时间】:2015-11-19 09:36:09
【问题描述】:
在 API 中的 Symfony 中,我有 PUT 方法,而在 Postman 中,我创建 PUT url 并在正文中添加字段并发送我进入操作但有空请求并且不明白为什么?我尝试使用 ApiDoc 中的参数和不使用并尝试使用注释 * @Put("/projects/{slug}", name="put", requirements={"id"="\d+"}) 但仍然是空请求。 scrren
/**
* Update existing Projects from the submitted data or create a new Projects at a specific location.
* @Put("/projects/{slug}", name="put", requirements={"id"="\d+"})
* @ApiDoc(
* resource = true,
* description = "Create/Update single Projects",
* parameters={
* {"name"="level", "dataType"="string", "required"=true, "description"="project choice - Senior, Middle+, Middle, Middle/Junior, Junior"},
* {"name"="main_skill", "dataType"="string", "required"=true, "description"="mainskill project"},
* {"name"="name", "dataType"="string", "required"=true, "description"="additional information"},
* {"name"="duration", "dataType"="string", "required"=true, "description"="1 year+, 3 months+, 2 weeks"},
* {"name"="location", "dataType"="string", "required"=true, "description"="location project"},
* {"name"="expected_budget", "dataType"="string", "required"=true, "description"="expected_budget project"},
* {"name"="start_date", "dataType"="string", "required"=true, "description"="start date project"},
* {"name"="description", "dataType"="string", "required"=false, "description"="description"},
* {"name"="employment", "dataType"="string", "required"=true, "description"="employment"},
* {"name"="project_skills", "dataType"="array", "required"=true, "description"="project skills project"},
* {"name"="markets", "dataType"="array", "required"=true, "description"="project markets "},
* {"name"="platforms", "dataType"="array", "required"=true, "description"="project platforms "},
* {"name"="token", "dataType"="string", "required"=true, "description"="is equally md5('email'.secret_word)"},
* {"name"="speciality", "dataType"="array", "required"=true, "description"="project speciality"},
* {"name"="type", "dataType"="string", "required"=false, "description"="project type - fixed_cost or time_and_material"},
* {"name"="rate", "dataType"="integer", "required"=true, "description"="project rate"}
*
* },
* statusCodes = {
* 200 = "Projects successful update",
* 404 = "Return when project with current slug not isset",
* 101 = "Secret token is not valid"
* },
* section="Project"
* )
*
*
* @param Request $request
* @param string $slug
* @return mixed
*/
public function putProjectAction(Request $request, $slug)
{
$data = $request->request->all();
$data 为空,我查看 $request 并没有找到我的字段( 当我尝试 POST 方法时,我在请求中看到我的字段 请帮忙
【问题讨论】:
-
但是这个API方法根本没有参数。你没看到什么?
-
更新问题。我尝试使用 ApiDoc 中的参数,但没有
-
刚刚试了,效果很好
var_dump($request->request); die(); object(Symfony\Component\HttpFoundation\ParameterBag)#764 (1) { ["parameters":protected]=> array(3) { ["_format"]=> string(4) "json" ["limit"]=> string(1) "5" ["level"]=> string(7) "gfdgdfg" } } -
我只添加了你的一个参数'level'。
-
这个魔术,我在 POSTMAN 中选择 PUT 在正文中添加字段,并在请求中有空参数