├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Shibin Das 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Drupal & JSON:API 2 | 3 | TOC 4 | 5 | - [Drupal](#drupal) 6 | - [Decoupled Frontend](#decoupled-frontend) 7 | - [Support](#support) 8 | - [Read](#read) 9 | - [FAQ](#faq) 10 | - [Contributing to this document](#contribute) 11 | 12 | --- 13 | 14 | ## Drupal 15 | 16 | ### Modules 17 | 18 | Check out [Ecosystem modules for JSON:API \| Drupal.org](https://www.drupal.org/project/jsonapi/ecosystem) to getlist of modules marked by maintainers as related to JSON:API 19 | 20 | | Name | Core Compatibility | Short description | 21 | |---| ---| ---| 22 | |[Commerce API](https://www.drupal.org/project/commerce_api)| 8.x | Extends the JSON:API implementation provided by Drupal for the Commerce module and its ecosystem. It adds capabilities beyond the default create, read, update, and delete operations for entities to support actions required to work with a decoupled ecommerce system. 23 | |[Entity Router](https://www.drupal.org/project/entity_router)| 8.x | Lookup entities by their paths/redirects and convert to a given format. 24 | |[Entity Share](https://www.drupal.org/project/entity_share) | 8.x | Entity Share is a collection of modules allowing you to share content entities like nodes, taxonomy terms, medias etc. between different Drupal instances. 25 | |[EzContent API - Enhanced De-coupled CMS Experience](https://www.drupal.org/project/ezcontent_api) | 8.x | This module adds JSON API functionality to [EZContent](https://www.drupal.org/project/ezcontent) profile. 26 | |[Fluid Comment](https://www.drupal.org/project/fluid_comment)| 8.x | Fluid comment provides a new comment field formatter that replaces Drupal's default comment field with a client-side component that lets you add new comments, reply to comments and moderate comments without ever leaving or reloading the page. 27 | |[JSON:API Access](https://www.drupal.org/project/jsonapi_access)| 8.x | It provides access checks for any entity operations in the JSON response. Based on JSONAPI:Extras. 28 | |[JSON:API Boost](https://www.drupal.org/project/jsonapi_boost) | 8.x | Improves the performance of the JSON:API module by cache warming your resource types. 29 | |[JSON:API Comment](https://www.drupal.org/project/jsonapi_comment) | 8.x | This module adds additional JSON:API compliant routes that enhance the developer experience of creating progressively decoupled or fully decoupled comment functionality. 30 | |[JSON:API Cross Bundles](https://www.drupal.org/project/jsonapi_cross_bundles) | 8.x | Add cross-bundle resource collections for Drupal's JSON API module. 31 | |[JSON:API Etag](https://www.drupal.org/sandbox/gabesullice/3132553)| 8.x sandbox | Adds Etag and If-None-Match support to JSON:API routes. This is most useful for improving the performance of polling requests to JSON:API resources because it eliminates the browser's need to download an unchanged response body. Additionally, when coupled with client-side rendering, the difference between 200 OK and 304 Not modified response statuses can be used to limit unnecessary DOM rendering. 32 | |[JSON:API Explorer](https://www.drupal.org/project/jsonapi_explorer)| 8.x | The JSON:API Explorer is an interactive web application for exploring your JSON:API server. 33 | |[JSON:API Flag](https://www.drupal.org/project/jsonapi_flag)| 8.x| This module exposes current user flaggings and entity flag counts over JSON:API Resources. 34 | |[JSON:API Extras](https://www.drupal.org/project/jsonapi_extras)| 8.x | The JSON:API module in code provides zero configuration out of the box. Use JSON:API Extras to customize your API. JSON:API Extras provides a means to override and provide limited configurations to the default zero-configuration implementation provided by the JSON:API in Core.| 35 | |[JSON:API Hypermedia](https://www.drupal.org/project/jsonapi_hypermedia)|8.8^|It adds support for rich, dynamic linking between your application's resources. It does not add any links of its own. Instead, it provides a plugin system for other modules to leverage. 36 | |[JSON:API Include](https://www.drupal.org/project/jsonapi_include)| 8.x | JSON API Include allow merge include and relationship data of JSON API. 37 | |[JSON:API Reference](https://www.drupal.org/project/jsonapi_reference) | 8.x | Provides a field type Typed Resource Object, that is similar to an entity reference field. However, rather than refer to an entity on the same Drupal installation, this refers to a resource object exposed via JSON:API. 38 | |[JSON:API Resources](https://www.drupal.org/project/jsonapi_resources)| 8.x | Makes it possible to define custom JSON:API routes. It does not define any custom routes of its own. 39 | |[JSON:API Schema](https://www.drupal.org/project/jsonapi_schema)| 8.x | JSON:API Schema provides [JSON-Schema](https://json-schema.org/) formatted schemas for JSON:API resources. 40 | |[JSON:API Search API](https://www.drupal.org/project/jsonapi_search_api) | 8.x | This module adds JSON:API resources that allows you to query your Search API indexes using the JSON:API spec. 41 | |[JSON:API Server Push](https://www.drupal.org/project/jsonapi_push) | 8.x | Experimental module that adds HTTP/2 server push capabilities to JSON:API. Not tested for production use. 42 | |[JSON:API User Resources](https://www.drupal.org/project/jsonapi_user_resources) | 8.x | Provides JSON:API enhancements for user accounts using the [JSON:API Resources \| Drupal.org](https://www.drupal.org/project/jsonapi_resources). 43 | |[JSON:API Views](https://www.drupal.org/project/jsonapi_views) | 8.x | Creates [JSON:API Resources \| Drupal.org](https://www.drupal.org/project/jsonapi_resources) routes for [Views module](https://www.drupal.org/docs/8/core/modules/views). 44 | |[JSONAPI Flysystem Uploader](https://www.drupal.org/project/jsonapi_flysystem_uploader)| 8.x | Entities may have a JSON API representation automatically uploaded to S3 or other file storage systems upon creation. This is handled using the Flysystem module and library. Data will be stored in a file named "[uuid].json" based upon the entity's UUID value.| 45 | |[Open Social JSON:API](https://www.drupal.org/project/social_json_api)| 8.x | Social JSON API provides an API which can be used with various entities. 46 | |[Subrequests](https://www.drupal.org/project/subrequests)| 8.x | Tell the system to execute several requests in a single bootstrap. Then return all the things. 47 | 48 | 49 | 50 | ### Clients 51 | 52 | Please refer to the list maintained on jsonapi.org : [JSON:API — Implementations](https://jsonapi.org/implementations/) 53 | 54 | 55 | ### Distributions 56 | 57 | | Name | Source | Short description | 58 | |---| ---| ---| 59 | | [Contenta CMS](http://www.contentacms.org/) | [GitHub](https://github.com/contentacms) | **Content deserves a special mention.** Contenta is an API-First Drupal distribution. 60 | |[EZContent](https://www.drupal.org/project/ezcontent) | Drupal.org | EzContent is a Drupal installation profile that addresses common content management pain points and accelerates CMS implementations. 61 | 62 | ### Authentication 63 | 64 | 65 | | Name | Core Compatibility | Short description | 66 | |---| ---| ---| 67 | |[JSON Web Token Authentication (JWT) \| Drupal.org](https://www.drupal.org/project/jwt) | 8.x | The JSON Web Token (JWT) Authentication module provides a Drupal authentication provider that uses JWTs as the primary factor of authentication. 68 | |[OAuth2 JWT SSO](https://www.drupal.org/project/oauth2_jwt_sso) | 8.x | OAuth2 JWT Single Sign On Module configures Drupal to use remote and centralized authentication service. This module works with any SSO provider which uses OAuth2 as the authentication framework, and JWT as the Bearer token. Therefore, this module works with Drupal's own OAuth 2.0. 69 | |[Simple OAuth](https://www.drupal.org/project/simple_oauth) | 8.x | Simple OAuth is an implementation of the [OAuth 2.0 Authorization Framework RFC](https://tools.ietf.org/html/rfc6749). 70 | 71 | 72 | 73 | 74 | 75 | 76 | ## Decoupled Frontend 77 | 78 | ### Frameworks 79 | 80 | | Name | Ecosystem | Short description | 81 | |---| ---| ---| 82 | | [ContentaJS](https://github.com/contentacms/contentajs) | Javascript | The Node.js counterpart for Contenta CMS distribution in Drupal. 83 | | [Druxt.js](https://github.com/druxt/druxt.js)| [GitHub](https://github.com/druxt/druxt.js) | Druxt.js connects your Drupal backend to your Nuxt.js frontend through the power of Drupal's JSON API. 84 | 85 | ### Libraries 86 | 87 | Node Packages 88 | | Name | Ecosystem | Short description | 89 | |---| ---| ---| 90 | | [Drupal JSON:API Extractor](https://www.npmjs.com/package/drupal-jsonapi-extractor)| npm | Crawl through a Drupal produced json:api and save the resulting data to static json files in directory structures to allow easy access to the files. 91 | | [Drupal JSON-API Params](https://www.npmjs.com/package/drupal-jsonapi-params)| npm | Provides a helper Class to create the required query. 92 | | [juissy](https://www.npmjs.com/package/juissy) | npm/GitHub | Juissy is a minimal experimental JSON API client for Drupal. 93 | |[jsona](https://www.npmjs.com/package/jsona) |npm/GitHub|Framework agnostic, customizable library that provide data formatters to simplify work with JSON API v1.0 specification. 94 | 95 | 96 | 97 | 98 | GithHub Repo 99 | | Name | Ecosystem | Short description | 100 | |---| ---| ---| 101 | 102 | 103 | ### Support 104 | 105 | - [Drupal Slack](https://drupal.slack.com) [#contenta](https://app.slack.com/client/T06GX3JTS/C5A70F7D1/thread/C5A70F7D1-1594978144.226100) 106 | 107 | ### Read 108 | 109 | - [The JSON:API specification website](https://jsonapi.org/) 110 | - [Drupal.org guide about JSON:API](https://www.drupal.org/docs/core-modules-and-themes/core-modules/jsonapi-module/jsonapi) 111 | 112 | 113 | ### FAQ 114 | 115 | 116 | Q : Is this a question? 117 | 118 | A : This is an answer. 119 | 120 | ... 121 | 122 | 123 | 124 | --- 125 | 126 | ### Contribute 127 | 128 | Please feel free to clone this repo, add your module/library and create a Pull Request. 129 | 130 | Guidelines 131 | - Entries in tables are to be sorted alphabetically 132 | 133 | Maintained By 134 | - [D34dMan](https://github.com/d34dman) 135 | --------------------------------------------------------------------------------