Drupal8中jsonApi的使用拓展

342 阅读3分钟

概述

笔者在《Drupal8网站的API接口调用与权限控制》一文中,介绍了如何用Drupal8作为后端数据管理平台,前端通过API调用数据接口。实现Drupal8的数据解耦,与小程序和移动APP进行无缝衔接。

本文进一步介绍jsonapi的拓展功能。包括如何添加相关的扩展模块,实现jsonapi接口文档的自动生成和优雅展示。

相关模块介绍

1.JSON:API Extras

  • JSON:API模块提供零配置开箱。使用JSON:API Extras自定义您的API。JSON:API Extras提供了一种方法来覆盖JSON:API模块提供的默认零配置实现并为其提供有限的配置。

  • 使用JSON:API Extras自定义JSON:API模块生成的API

  • 以下是JSON:API Extras模块的当前功能:

    1. 启用和禁用资源。
    2. 覆盖资源的名称。示例:article代替node--article
    3. 覆盖资源的路径:示例:api/articles代替jsonapi/node/article
    4. 禁用字段。
    5. 使用字段别名。示例:tags代替field_tags
    6. 增强现场输出。示例:使用date_time字段增强器格式化日期字段。

2.OpenAPI for JSON:API

  • 与基本的Open API模块集成以生成JSON:API的定义。如果您需要由JSON:API驱动的API的文档,则需要启用此模块和文档生成器,例如Open API UI ReDoc。请查看Open API项目,以获取有关替代UI生成器的更多信息。

  • 此模块需要Open API 2.x或更高版本。

  • 该模块确实为Open API提供了必要的插件,以服务于JSON:API定义文档。为此,它至少需要**Open API(8.x-2.x)**。

3.ReDoc for OpenAPI UI

  • ReDoc是一个JavaScript库,允许用户浏览Web服务API的api文档。该模块提供ReDoc库,用于在Drupal站点中显示OpenAPI规范。使用该项目需要OpenAPI UI,因为它提供了基础架构。请访问OpenAPI项目页面以获取更多信息。

  • 该模块需要OpenAPI UI模块

4.OpenAPI UI

  • OpenAPI UI模块围绕在Drupal站点内显示OpenAPI规范实现了一个API。该库实现了一个插件库,可用于在您的网站中初始化API资源管理器UI。

  • 该模块没有任何已实现的插件,但是Swagger UIReDoc的实现可以作为Drupal模块使用。

  • 请访问Swagger for OpenAPI UI模块ReDoc for OpenAPI UI模块页面,以获取有关使用这些库的信息。

  • OpenAPI是用于记录Web服务api的规范,该规范是一致的,开发人员可以重复使用。使用一致的格式可以重用api客户端库,并获得学习新api的一致体验。

  • 该模块通过在Drupal和库之间提供集成以显示api规范供开发人员和最终用户使用,从而适合OpenAPI生态系统。有关Drupal api的OpenAPI规范以及其他贡献模块的API的信息,请查看OpenAPI模块

示例

安装并启用扩展模块

composer require drupal/jsonapi_extras drupal/openapi_jsonapi drupal/openapi_ui_redoc drupal/openapi_ui 
drush en -y jsonapi_extras openapi_jsonapi openapi_ui_redoc 
drush cr

自动生成API文档

  • 来到/admin/config/services/openapi页面。

  • 点击View/Download按钮,可以查看和下载自动生成的API文档。

  • 点击Explore with ReDoc按钮,可以看到以ReDoc方式显示的在线API文档,看起来更加美观。

  • 需要自定义API,通过/admin/config/services/jsonapi/extras页面来设置。需要进行资源覆写点击Resource overrides按钮。

例如,覆写article资源的API:

1.在过滤框中输入article。

2.点击“覆写”按钮。

  • 选择禁用资源,则相关article的资源API不可以访问。
  • 可以自定义资源路径。如,将node/artcle改为article

  • 可以禁用不需要API返回的资源字段,只需在字段左边勾选。

3.保存。回到API文档查看页面/admin/config/services/openapi,点击Explore with ReDoc按钮,找到article资源。