Php Apigility需要代码连接的REST POST实体的路由\标识\名称
我似乎只能在调用/merchant/1时创建新实体,但是/merchant将返回405状态 这是我的帖子资源方法:Php Apigility需要代码连接的REST POST实体的路由\标识\名称,php,api,zend-framework2,laminas-api-tools,Php,Api,Zend Framework2,Laminas Api Tools,我似乎只能在调用/merchant/1时创建新实体,但是/merchant将返回405状态 这是我的帖子资源方法: public function create($data) { return $this->mapper->create($data); } 该实体的id是一个自动输入字段,因此对于我来说,客户端不提供标识符是有意义的 下面是我的module.config.php中的一个片段: 'zf-rest' => array( 'MyTest\\V1\\
public function create($data)
{
return $this->mapper->create($data);
}
该实体的id是一个自动输入字段,因此对于我来说,客户端不提供标识符是有意义的
下面是我的module.config.php中的一个片段:
'zf-rest' => array(
'MyTest\\V1\\Rest\\Merchant\\Controller' => array(
'listener' => 'MyTest\\V1\\Rest\\Merchant\\MerchantResource',
'route_name' => 'MyTest.rest.merchant',
'route_identifier_name' => 'merchant_id',
'collection_name' => 'merchant',
'entity_http_methods' => array(
0 => 'GET',
1 => 'PATCH',
2 => 'PUT',
3 => 'POST',
),
'collection_http_methods' => array(
0 => 'GET',
),
'collection_query_whitelist' => array(),
'page_size' => 25,
'page_size_param' => null,
'entity_class' => 'MyTest\\V1\\Rest\\Merchant\\MerchantEntity',
'collection_class' => 'MyTest\\V1\\Rest\\Merchant\\MerchantCollection',
'service_name' => 'Merchant',
),
我不知道我还能提供什么来帮助你们了解情况,但很乐意在要求时提供更多细节
谢谢您的时间。所以我添加了POST作为允许的HTTP收集方法,现在它可以用于发布单个实体
不确定这是否是出于设计,但解决了我的问题。因此我添加了POST作为允许的HTTP收集方法,现在它可以用于发布单个实体
不确定这是否是出于设计,但解决了我的问题。如果在Restful API上创建新资源,则在收集路径上发布。因此,您应该将
POST
方法添加到collection\u http\u methods
数组中。这完全符合Restful规范
'collection_http_methods' => array(
0 => 'GET',
1 => 'POST',
),
我认为如果你改变,它应该会起作用。
还有一件事,我不知道为什么他们会在文档中这样做,但是我的http\u方法
数组看起来是这样的:
'collection_http_methods' => array('GET', 'POST')
如果你问我的话会容易得多:)如果你在Restful API上创建了一个新的资源,你就可以在收集路径上发表文章。因此,您应该将
POST
方法添加到collection\u http\u methods
数组中。这完全符合Restful规范
'collection_http_methods' => array(
0 => 'GET',
1 => 'POST',
),
我认为如果你改变,它应该会起作用。
还有一件事,我不知道为什么他们会在文档中这样做,但是我的http\u方法
数组看起来是这样的:
'collection_http_methods' => array('GET', 'POST')
如果你问我的话就容易多了:)应该只允许在集合URI的。。。为什么?在已经存在的实体上发布新实体对Apigility没有意义,在不存在的URI上发布也没有意义。。我不知道你的设置为什么会改变。我想更多的是因为“收藏”这个词让我感到厌烦。我只想发布一个新实体,而不是x个。URL中缺少标识符是我最终尝试使用集合URL的原因,因此从这个角度来看,现在更有意义了。应该只允许在集合URI的。。。为什么?在已经存在的实体上发布新实体对Apigility没有意义,在不存在的URI上发布也没有意义。。我不知道你的设置为什么会改变。我想更多的是因为“收藏”这个词让我感到厌烦。我只想发布一个新实体,而不是x个。URL中缺少标识符是我最终尝试使用集合URL的原因,所以从这个角度来看,现在更有意义了。