Search by

drupal / webships_project

Drupal-Infrastructure

Webships Project: a ready-to-use Drupal API project, installed with the Webships installer and one of its site templates: Webships Starter or WebAPI Starter. JSON:API with authentication, authorization and Swagger UI documentation.

1.0.x-dev 2026-09-18 17:56 UTC

This package is not auto-updated.

Last update: 2026-09-18 18:34:19 UTC


README

A ready-to-use Drupal API project.

The site serves a JSON:API from /api, with authentication, authorization and OpenAPI documentation rendered by Swagger UI at /api-docs. Everything comes from drupal.org.

The project requires only the Webships installer and two site templates. The installer lists them:

  • Webships Starter: the default site template for Webships, with the apps and organizations content model and its API resources.
  • WebAPI Starter: the basic default Drupal API site template, with the standard content model.

Both use the Drupal core administration theme, for the back end and the front end.

Create a project

Composer runs inside DDEV, so nothing is needed on your machine but DDEV itself.

mkdir -p ~/workspace/projects/my-api
cd ~/workspace/projects/my-api
ddev config --project-type=drupal11 --docroot=web --php-version=8.4
ddev start
ddev composer create-project drupal/webships_project:^1.0

Install the site

Open the site and follow the installer, where you pick the site template:

ddev launch

Or install from the command line, with the Webships Starter site template:

ddev drush si -y webships --account-name=webmaster --site-name="My API" installer_site_template_form.add_ons=webships_starter

Use webships_starter or webapi_starter as the site template.

Project layout

PathContent
web/Drupal root (core, contrib modules and themes)
web/profiles/contrib/webshipsThe Webships installer
web/libraries/swagger-ui/distSwagger UI, for the API documentation
recipes/webships_starterThe Webships Starter site template
recipes/webapi_starterThe WebAPI Starter site template
vendor/Composer dependencies, Drush

What is inside

  • Drupal core 11.4.
  • Web API: JSON:API from /api, read-only, with OAuth 2.0 and consumers.
  • OpenAPI documents for JSON:API and REST, rendered with Swagger UI.

Write operations

JSON:API is read-only. Turn write operations on at /admin/config/services/jsonapi only when the site needs them, and rebuild the cache afterwards.

Cross-origin requests

CORS lives in sites/default/services.yml under cors.config. No module can ship it, so set it per site.

Maintainers