Drupal 8 restresource:找不到路线

时间:2016-10-11 08:20:02

标签: rest drupal drupal-8

我正在尝试创建一个休息端点。我这样做的方法是首先使用apiConnector.get('api/settings/get').then(function(settings) { $rootScope.settings = settings; $rootScope.$broadcast('settings-fetched'); }); 创建一个模块,然后添加其余依赖项,然后使用drupal generate:module创建一个restresource。这一切都运行正常,我创建的端点甚至显示在模块restui中,具有以下路径:drupal generate:plugin:rest:resource。 问题是,当我进入我创建的端点时,我收到以下错误:

/api/v1/articles

缓存重建并不能解决我的问题,当我查看路由表时,确实没有为{ "message": "No route found for \"GET /api/v1/articles\"" } 添加路由。 有什么我忘了做的吗?

这是生成的休息资源:

/api/v1/articles

3 个答案:

答案 0 :(得分:3)

根据REST and Application Integration

  

您发送的数据的内容类型,或者您的接受类型   您收到的数据必须设置为' application / hal + json'。

因此需要执行以下步骤:

  1. 启用HAL模块。
  2. 在资源配置中,接受的请求格式下启用 hal_json
  3. [I]nform Drupal about the serialization format you are using。因此,要么使用hal + json(例如POST)发送Content-Type标头,要么将?_format=hal+json添加到URL(例如GET)。
  4. 这也可能是因为错过了这一行,但你已经拥有它:

    "https://www.drupal.org/link-relations/create" = "/api/v1/articles"
    

答案 1 :(得分:0)

所以问题在于从8.1.9升级到8.2.0。这破坏了我用于分配端点的RestUI模块。

答案 2 :(得分:0)

问题是,restui不会为您的资源创建配置文件,如果您只想使用稳定版本(8.x-1.12),可以自己创建它。 restui的dev版本已经解决了这个问题。

链接:https://www.drupal.org/node/2816433