我在创建自定义JSON API资源时遇到问题,该资源在mydrupalsite / jsonapi链接上可见。 我找到了这个例子:
https://glamanate.com/blog/using-json-api-query-your-search-api-indexes
显示了如何创建自定义资源,但是它已经过时了。我试图在本文中创建一个自定义模块,但由于json-api模块已更改,因此不再起作用。
例如,我想显示所有节点,并将jsonapi端点设置为节点类型-所有这些都将服务于Drupal站点的所有节点。
我正在使用drupal 8.7.1和JSON API核心模块。
我尝试用谷歌搜索这个问题,但是没有创建自定义json api端点的示例。
对于最终结果,我想创建jsonapi端点,例如:mydrupalsite / jsonapi / nodes / all将服务所有节点。
答案 0 :(得分:0)
根据JSON:API的模块维护者,该模块当前不支持与其内部专用API的外部连接,因此为什么您引用的模块不再起作用。
有您要求的混合包装的计划。有关讨论,请参见下面的线程。
https://www.drupal.org/project/jsonapi_extras/issues/2956414
答案 1 :(得分:0)
您可以在自定义模块中声明REST端点。
根据https://www.drupal.org/docs/8/api/restful-web-services-api/custom-rest-resources,在/modules/custom/mymodule/src/Plugin/rest/resrouce/MyEndPoints.php中,创建一个扩展ResourceBase的类。
然后,您可以定义要公开的节点集,使用查询参数对其进行过滤,分页或执行所需的任何操作。
我成功地使用了这种技术来使事件显示在FullCalendar库中,如果有帮助,我可以对此进行详细说明。
祝你好运
答案 2 :(得分:0)
我们在 Decoupled Days 2019 中讨论过这个问题。我们得出以下结论 结论:
jsonapi_cross_bundles
/jsonapi/node
),其中将包含:(a) 链接列表
到该实体类型的资源类型,以及 (b) 链接到
解释交叉包情况的文档页面(甚至可能
提到实验性的 jsonapi_cross_bundles
模块)。来源:https://www.drupal.org/project/jsonapi_extras/issues/2956414#comment-13189872
答案 3 :(得分:0)
截至 2021 年,实现这一目标的最佳方式是 JSON:API Resources module。
此模块允许您在自定义模块中添加自己的 JSON:API 端点。