Motivation

Open Social is slowly moving towards an API first approach.

This issue serves as a meta issue for community discussion and to track to work that will be required to build the new APIs as well as what can be done in the existing themes to utilise the new API structure.

Background reading

The Open Social blog contains articles about our plans and ideas.
A change is coming: decoupled Open Social
Open Social's Alexander Presents Some Lessons Learned at Decoupled Days 2020
Open Social Is Evolving: The First Phase of Fully Decoupling

Proposed resolution

Open Social has selected version 4 of the GraphQL module as it allows us to precisely control the shape of the Graph that we want to present. This allows us to better decouple a clear data graph from the internal data representation.

Remaining tasks

  • Identify the data within Open Social that must be exposed
  • Design the Graph structure for each piece of data
  • Implement pieces of the Graph in their respective stories

Third party usage

MVP requirements and shared code

Identified parts of the Graph

Bits of previously defined schema may be salvaged from https://github.com/goalgorilla/open_social/pull/2196

User interface changes

Existing user interfaces should not change as a result of work done for the GraphQL API.

API changes

Many API additions will be made in the form of a GraphQL API.

Data model changes

Internal data structures may change to accommodate the GraphQL API resolvers, keeping semantic versioning in mind.

Comments

Kingdutch created an issue. See original summary.

kingdutch’s picture

Issue summary: View changes
ronaldtebrake’s picture

Issue summary: View changes
ronaldtebrake’s picture

Issue summary: View changes
ronaldtebrake’s picture

Issue summary: View changes
ronaldtebrake’s picture

Issue summary: View changes
ronaldtebrake’s picture

Issue summary: View changes
ronaldtebrake’s picture

Issue summary: View changes
kingdutch’s picture

Issue summary: View changes
kingdutch’s picture

Issue summary: View changes

We previously introduced parts of the schema that we didn't yet need or implement resolvers for. We've removed these in https://github.com/goalgorilla/open_social/pull/2196 but they may still be useful if you implement certain features in the future.

Specifically

  • Locale
  • Settings/notifications
  • Address
kingdutch’s picture

Issue summary: View changes