Drupal8 REST资源POST方法
我需要帮助在Drupal8中使用POST方法实现自定义RESTAPI 我有一个REST资源插件类,其中有一个get()方法。 我能够通过GET方法访问此资源,并且工作正常 我在同一个类中有一个post()方法,但无法通过post方法访问资源,即使通过“RESTUI”模块查看时显示“post” 但当通过POST方法访问时,它显示以下错误Drupal8 REST资源POST方法,rest,drupal-8,Rest,Drupal 8,我需要帮助在Drupal8中使用POST方法实现自定义RESTAPI 我有一个REST资源插件类,其中有一个get()方法。 我能够通过GET方法访问此资源,并且工作正常 我在同一个类中有一个post()方法,但无法通过post方法访问资源,即使通过“RESTUI”模块查看时显示“post” 但当通过POST方法访问时,它显示以下错误 {"message":"No route found for \u0022POST \/iot\/location\/\u0022: Method Not Al
{"message":"No route found for \u0022POST \/iot\/location\/\u0022: Method Not Allowed (Allow: GET)"}
我正在使用POSTMAN Chrome扩展,屏幕截图如下
我使用下面的博客来编写RESTAPI,我的代码与本文中显示的代码几乎相同
提前感谢。确保您在REST资源中设置了
uri\u路径,包括“”
例如,您可能有如下内容:
/**
* My REST Resource
*
* @RestResource(
* id = "my_rest_resource",
* label = @Translation("My REST Resource"),
* uri_paths = {
* "canonical" = "/my_rest/resource"
* }
* )
*/
要发布到上面的资源,您可以使用端点/my\u rest\u资源
。如果您想发布到/my_rest/resource
,请添加链接关系条目:
/**
* My REST Resource
*
* @RestResource(
* id = "my_rest_resource",
* label = @Translation("My REST Resource"),
* uri_paths = {
* "canonical" = "/my_rest/resource",
* "https://www.drupal.org/link-relations/create" = "/my_rest/resource"
* }
* )
*/
添加后,可能需要清除缓存。我发现GET可以像第一个示例中预期的那样工作,而POST失败,错误为“405 method not allowed”
Drupal文档()中关于这个主题的措辞可能会更清晰一些。我也在努力创建一个自定义的POST端点。不幸的是,似乎没有关于创建自定义POST端点的代码或教程,所有内容都集中在现有的核心实体/{entity_type}/{entity}。我认为问题在于不理解@RestResource注释中的“serialization_class”和“deriver”键。我希望我能提供一个答案后,在这里找到它…你有清除缓存?谢谢。你有没有跟踪过我的文件?另外,您使用的是什么版本的Drupal8.x(8.1.x,8.2.x)?可能是rest_ui模块的一个bug。您是否尝试在没有其他ui帮助的情况下自己创建yml文件?