Skip to main content
drupalreleases

Use direct release data with your AI assistant.

Learn more

Swagger-PHP OpenAPI 3 documentation generator

Security covered Under active development 15 sites

This module enables you to document your Drupal code using PHP attributes. It then generates an OpenAPI 3 specification and a documentation user interface based on these attributes.

This module uses the zircote/swagger-php library to let you document your
Drupal code, and generate an OpenAPI 3 specification and documentation UI, based on those PHP attributes.

Installation

  • Install this module and its dependencies via Composer.
  • Install the swagger-api/swagger-ui library in your /libraries folder.

    See https://www.drupal.org/project/openapi_ui_swagger#installation-composer
  • Enable the swagger_php module
  • Use the zircote/swagger-php library PHP attributes to document your API,
    e.g. a custom RestResource plugin you have created.

Example usage

Say we have created a custom RestResource plugin, and want to document this API endpoint via the OpenAPI 3 specification.


namespace Drupal\my_custom_api\Plugin\rest\resource;

use Drupal\Core\StringTranslation\TranslatableMarkup;
use Drupal\rest\Attribute\RestResource;
use Drupal\rest\ModifiedResourceResponse;
use Drupal\rest\Plugin\ResourceBase;
use OpenApi\Attributes as OA;

/**
 * My custom API endpoint.
 */
#[OA\Info(
  version: "1.0.0",
  description: "API documentation for my custom API",
  title: "My Custom API"
)]
#[RestResource(
  id: 'my_custom_resource',
  label: new TranslatableMarkup('Custom API endpoint to send data to.'),
  uri_paths: [
    'create' => '/api/v1/custom/add',
  ],
)]
class MyCustomResource extends ResourceBase {

  /**
   * Responds to POST requests and saves the data.
   */
  #[OA\Post(path: '/api/v1/custom/add', operationId: 'my_custom_resource_add')]
  #[OA\Response(response: '200', description: 'The processed data')]
  public function post(array $data): ModifiedResourceResponse {}

}

This renders the following API documentation page + an OpenAPI 3 compatible JSON specification file:

More information: https://zircote.github.io/swagger-php/

Drupal 10–11

Ask your assistant about Swagger-PHP OpenAPI 3 documentation generator

Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
5
Tracked since
Nov 2025
Latest release
1 week ago
Releases (12 mo)
5 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Core PHP Release date
1.0.0 Stable 10–11 Oct 3, 2026
1.0.0-alpha3 Pre-release 10–11 Nov 20, 2025
1.0.0-alpha2 Pre-release 10–11 Nov 19, 2025
1.0.x-dev Dev 10–11 Nov 19, 2025
1.0.0-alpha1 Pre-release 10–11 Nov 19, 2025