从多条路径使用时,Zend表现力半抛异常

时间:2019-05-09 12:45:28

标签: php hal zend-expressive zend-router zend-rest

我有一个模型类user,并且有三个与此用户对象相关的API端点

  1. POST /api/user
  2. GET /api/user/:id_user
  3. PUT /api/user/

POST和PUT具有JSON正文。我想将所有三个操作的user对象作为HAL响应返回。我的三个处理程序如下所示:

$userObj = $this->userService->relevent_service($params); // returning an user object
$request = $request->withAttribute("id", $userObj->getId());
$resource = $this->resourceGenerator->fromObject($eventObj,$request);
return $this->responseFactory->createResponse($request, $resource);

我的halMetadataMap如下所示:

[
      '__class__' => RouteBasedResourceMetadata::class,
      'resource_class' => user::class,
      'route' => 'api.getUserById',
      'extractor' => ArraySerializableHydrator::class,
]

它使用GET路由返回正确的用户HAL对象,没有任何问题,但是当我尝试使用POST和PUT路由生成HAL对象时,ResourceGenerator引发异常。

如果我为用户类创建了两个附加的代理类,并为POST和PUT创建了三个单独的元数据映射,则它可以正常工作。但似乎多余。我描述的情况并不少见。因此,实现此输出的最佳实践是什么?

0 个答案:

没有答案