通过REST API的分类学期返回406不可接受 -- taxonomy-terms 领域 和 8 领域 drupal 相关 的问题

Taxonomy term via Rest API returns 406 Not Acceptable


0
vote

问题

中文

我无法获得与REST API一起使用的分类术语。我已经使用了REST UI模块来启用REST API的分类学术语,并启用所有格式。

当我请求 http://www.domain.com/taxonomy/术语/ 1?_format = JSON 虽然,我收到消息:

  {"message":"Not acceptable format: json"}   

对于hal和xml也是如此。一切都适用于节点,所以我怀疑某处的错误。使用8.2.6。

英文原文

I can't get the Taxonomy terms to work with the Rest API. I've used the Rest UI module to enable the Taxonomy Term for the Rest API, and enabled all formats.

When I request http://www.domain.com/taxonomy/term/1?_format=json though, I get the message:

{"message":"Not acceptable format: json"} 

Same for for hal and xml. Everything works fine for nodes, so I suspect a bug somewhere. Using 8.2.6 .

     

回答列表

1
 
vote
vote
最佳答案
 

使用drupal 8.3.x使用最新的休息Ui 3月28日,2017年3月28日

  • 我已经完成了一个干净的drupal安装
  • 下一个创建了一个术语访问 http://drupal.d8/admin/结构/分类/管理/标签/添加
  • 访问了the term http://drupal.d8/taxonomy/term/1 检查它是否有
  • 测试了一个JSON响应 http://drupal.d8/taxonomy/term/ 1?_Format = JSON
  • 给出预期的 {"message":"Not acceptable format: json"} ,因为我们尚未配置休息
  • 下一个启用休息UI模块
  • 在 http://drupal.d8/admin/config/services/rest rest ui启用分类学术语
  • 访问 http://drupal.d8/taxonomy/term/1?_format = JSON 再次给了我预期的JSON输出,如 {"tid":[{"value":1}],"uuid":[{"value":"d5e87924-5ccd-4fbe-bf1b-f1790da0d800"}],"langcode":[{"value":"en"}],"vid":[{"target_id":"tags","target_type":"taxonomy_vocabulary","target_uuid":"b1d2d8a9-0f05-49e7-abbc-137aaa9d0f64"}],"name":[{"value":"Term 1"}],"description":[{"value":null,"format":null}],"weight":[{"value":0}],"parent":[],"changed":[{"value":1491899632}],"default_langcode":[{"value":true}],"path":[]}

注意我已测试为具有相同结果的管理员和匿名。启用hal和请求格式 xml hal_json 也给出了预期的结果。

禁用cookie请求并启用basic_auth给出不同的响应。

{"消息" :"此路由不允许使用已使用的身份验证方法。" }

希望这有帮助。

 

This works as expected using Drupal 8.3.x using latest Rest UI Mar 28, 2017.

  • I've done a clean Drupal install
  • Next created a term visiting http://drupal.d8/admin/structure/taxonomy/manage/tags/add
  • Visited the term http://drupal.d8/taxonomy/term/1 to check it's there
  • Tested for a json response http://drupal.d8/taxonomy/term/1?_format=json
  • giving the expected {"message":"Not acceptable format: json"} as we have not yet configured Rest
  • Next enabled Rest UI module
  • Configured taxonomy term on http://drupal.d8/admin/config/services/rest Rest UI enable taxonomy term
  • Visiting http://drupal.d8/taxonomy/term/1?_format=json again gave me the expected json output like {"tid":[{"value":1}],"uuid":[{"value":"d5e87924-5ccd-4fbe-bf1b-f1790da0d800"}],"langcode":[{"value":"en"}],"vid":[{"target_id":"tags","target_type":"taxonomy_vocabulary","target_uuid":"b1d2d8a9-0f05-49e7-abbc-137aaa9d0f64"}],"name":[{"value":"Term 1"}],"description":[{"value":null,"format":null}],"weight":[{"value":0}],"parent":[],"changed":[{"value":1491899632}],"default_langcode":[{"value":true}],"path":[]}

Note I have tested as admin and anonymous with same results. Enabling HAL and requesting the formats xml and hal_json gave the expected results too.

Disabling cookie request and enable basic_auth give a different response.

{"message":"The used authentication method is not allowed on this route."}

Hope this helps.

 
 
1
 
vote

我有这个问题,但有节点,而不是分类法。 我试图通过做来获得节点的JSON http:// localhost / mysite / node / 1?_format = json

然而,我得到的就是{"消息" :"不可接受的格式:json" } 您配置了这样的REST资源:

输入图像描述此处

当我尝试使用分类项时,它有用,就像在克莱登评论中描述的那样。但是节点仍然给了我不可接受的格式问题。 有没有任何配置我缺少,使节点端点工作?

 

Im having this issue but with nodes, not with Taxonomy terms. Im trying to get the json of a node by doing http://localhost/mysite/node/1?_format=json

However all i get is {"message":"Not acceptable format: json"} Event thou i configured the REST resources like this:

enter image description here

When i try with taxonomy term it works, just like described on Clemens Comment. However nodes still give me the Not acceptable format issue. Is there any configuration im missing to make the nodes endpoints work?

 
 
1
 
vote

这可能是 / taxononomy / term /%的URL模式,其在视图和休息API中相同。

当您检查请求对象时,它具有Controller ViewPageController :: handle ,在其中删除节点中,请求通过 requesthandler :: hander 其余模块。

我已经检查了分类视图的"视图" 页面,并找到了具有相同URL模式/分类/术语/%的页面。刚刚尝试禁用此视图并点击API,并检查请求,该请求现在调用 requestHandler 控制器。

问题是在视图页面和REST API中提供相同的URL模式,因为URL模式已在视图中注册,API调用不起作用。

所以尝试禁用分类学视图并再次击中API。

在drupal.org

中检查一下。
 

This could be the url pattern /taxonomy/term/%, which is same in views and Rest api.

When you check the request object, it has the controller ViewPageController::handle, where as in deleting nodes, the request goes through RequestHandler::handle which is from the REST module.

I have checked the views page for taxonomy views and found the a page with the same url pattern /taxonomy/term/%. Just tried disabling this view and hit the API, and checked the request, which now calls the RequestHandler controller.

The issue is with same url pattern provided in Views page and the REST API, As the url pattern is already registered in views, the api call doesn't work.

So try to disable the taxonomy view and hit the api again.

Check this at drupal.org

 
 

相关问题

11  如何从术语ID获取分类学期名称?  ( How can i get the taxonomy term name from a term id ) 
我正在尝试按学期ID获取分类学期名称。根据另一个帖子,我应该首先加载术语: $term = Drupal::entityTypeManager()->getStorage('taxonomy')->load($tid); 但然后我收到此错误: 注意:未定义的属性:drupal core entity ...

0  分类学期问题  ( Taxonomy term issue ) 
只是一个月,我开始在drupal8工作,我陷入了一些分类学期问题。我创建了一个词汇技能组,包括:php,.net,sql,java。在我的内容工作中,我添加了这种分类技能集。当我选择一个术语时,显示与它关联的ID(例如,当我选择PHP时,ID也显示为PHP(23))。为了克服这个问题,我已经安装了所选模块,解决了我的...

1  如何从分类学期ID获取节点ID?  ( How do i get the node id from the taxonomy term id ) 
在Drupal 7中,我们正在使用 taxonomy_select_nodes() 以获取使用分类项的节点列表。 Drupal 7之后的版本中的等同物是什么? ...

-2  编辑分类术语的元标签  ( Edit meta tag for taxonomy terms ) 
我的网站上有15个类别。我需要每个类别页面的不同元标记。那有可能吗?我尝试了使用元标记上下文。但它没有工作。我启用了这些模块:metatag和页面标题。 ...

0  尝试从TID加载分类学期名称时出错  ( Error when trying to load taxonomy term name from tid ) 
我正在尝试用从URL参数中确定的分类学术语的名称替换视图名称。 当我显式设置 $tid 时,以下内容完美地工作: function hook_views_pre_render(ViewExecutable $view) { $tid = 2; $term = Drupal::entityTypeMana...

0  如何在导入节点上创建分类分类术语?  ( How do i create hierarchical taxonomy terms on import nodes ) 
我使用drupal 7和 feeds 模块。 我有一个包含10个字段的Excel文件,因此我想将这10个字段导入指定的内容类型作为节点,并且为导入文件创建分层分类术语的3个字段。 例如,我的Excel文件有10列。 第1列(汽车名称) BMW 奇瑞 mvm 第2列(汽车模型) BMW 110...

0  自动完成分类领域取决于另一个分类领域  ( Autocomplete taxonomy field depend on another taxonomy field ) 
有一种内容类型的动物,其中使用了两个分类区域的动物类型和品种。品种分类是自动完成分类领域。所以我想要繁殖的分类系统依赖于动物型分类领域。即,当猫从动物类型的场中选择猫,那么滋生分类物只能展示猫型品种。这可以怎样才能实现吗? ...

-1  不同语言的节点数据检索  ( Node data retrieval for different language ) 
我有两种语言(英语[en]和阿拉伯语[AR])在Drupal 8.3 CMS中设置。根据用户输入语言参数,我尝试使用API​​使用API​​检索数据。当我默认打印节点数据时,我会出现英语。以阿拉伯语获得结果的最简单方法是什么? 我使用以下功能从DB获取详细信息。 $node_type = $respons...

1  如何拉动一组术语描述而不是他们的名字?  ( How do i pull in a group of term descriptions instead of their names ) 
我正在使用分类学通过主题对"课程计划" 类型的内容进行分类。每个课程计划都可以属于多个科目。 在我显示这些课程计划的视图中,我想拥有一个字段,列出所有术语的描述,而不是他们的名字。 我遵循这些步骤拉入 Taxonomy term: Term description 而不是 Content: Subject (其中主题...

1  分类术语清单和功能  ( Taxonomy terms list and features ) 
我注意到了,虽然我能够将分类物构建到我的功能中,但它似乎并没有在分类中包含术语列表。当我去创建一个功能时, uuid_term 部分确实列出了一些,但不是很多,实际的术语来选择。我错过了什么?值得一提的是,我从演示版本开始并从那里定制。实际列出的唯一术语在结构和gt中没有显示出来;分类。 我尝试升级uuid无效。 ...

0  如何在页面模板中呈现分类?  ( How to render taxonomy in page template ) 
我正在尝试在自定义模板中显示所有分类术语( page--project.tpl.php覆盖 page.tpl.php ,但我无法关闭它。 我想使用我看到的默认渲染 render($page['content']) : 似乎我应该能够使用 render($node->field_project_tags)...

2  Catrononomy标签/术语不止一个单词吗?  ( Can taxonomy tags terms be more than one word ) 
我创建了一个视图,根据我与每个页面关联的标签过滤内容。当我的标签是单个单词时,它很棒。 在这种情况下,包含上述任何一个标签的帖子出现在我的页面上。 但是,我想创建并选择包含多个单词(例如电影标题)的帖子的标签,例如一尘不染的心灵的永恒阳光,花园状态,< em>飞行员。 目前,我通过复选框(如果是相关的),不使用自动...

0  从一个词汇表中删除具有多个分组术语的节点的Views Feed Display的重复记录  ( Remove duplicate records from views feed display for node with multiple grouped ) 
我在视图中有一个RSS馈送显示,视图中的一个字段是一个多值分类参考字段。馈送设置具有"分组字段" 设置,并且我选择了该字段(并且我在查询设置中也有不同的选择),但我仍然获得重复的记录。 当我在mysql中运行查询时,我可以看到它返回每个术语的一个记录,因此我猜测像在显示图层中处理的分组,即RSS视图没有(即使它)有...

2  创建新分类学术语后重定向  ( Redirect after creating new taxonomy term ) 
我是德鲁佩尔的新手。我试图弄清楚是否有可能在添加新的词汇项后重新启动回分类学页面,而不是被定向到新创建的术语的管理页面。这是否必须在分类模块的控制器中更改?或在另一个文件中? 有任何帮助,谢谢。 ...

0  添加多级分类学术语选择字段,为上级选择多个选择  ( Add multi level taxonomy term selection field with multiple selection for last l ) 
我想用分类学期选择添加字段 如果假设我将词汇称为 food 并且它具有以下术语层次,如下所示: Fruit - Mango - Apple - Banana Vegetables - Spinach - Potato - Tomato 在选择一个节点中选择分类术语,我想先选择水果或蔬菜,然后在另一个选择列表...

1  节点列表在分类学术语页面上  ( Node listings on taxonomy term page ) 
如何在Drupal 8中的分类学术语页面上禁用/删除节点列表? ...

2  如何从插件上下文中获取当前的分类学期?  ( How do i get the current taxonomy term from the plug in context ) 
在节点上时,以下注释将从上下文中获取节点: /** * @Condition( * id = "node_type", * label = @Translation("Node Bundle"), * context = { * "node" = @ContextDefinition...

0  是否可以使用Clean URL将参数传递分类学术语的别名URL?  ( Is it possible to pass parameters in a taxonomy terms aliased url using clean u ) 
我正在尝试通过URL参数并在预处理功能中访问它们。我做了一个相当数量的研究,但没有找到答案。如果我完成以下/示例,它有效?ID = 1,但这非常丑陋和非SEO友好。清洁网址更好。 是否可以使用Clean URL将参数传递在分类学期的别名URL中? ...

0  对象的访问术语名称如何?  ( How access term name by object ) 
我想通过tid .i使用这个加载父项名称 $term = Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadParents($tid); kint($term); 返回一个对象是我的父术语,但我无法通过此对象访问术语名称。请查看附加的...

-1  如何在术语对象中获取参考字段值?  ( How to get reference field value in term object ) 
我具有带有引用字段的术语对象。如何获取参考IDS的值。请检查附加的Srceenshot我的术语对象。 我尝试过这个,但它没有返回任何 mycustommodule.register: path: '/profile/register' defaults: _entity_form: 'user...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.