Drupal · OpenAPI Overlay 1.0.0

API Evangelist enhancements — Drupal JSON: Node Articles API

5 actions 5 updates update extends drupal-node-articles-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Drupal's API. It is a proposal applied on top of the contract, not a document Drupal publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-self-hostedx-base-url-templatex-api-evangelist-notex-domain-standardx-conventionsx-error-catalogx-irreversiblex-reversal-operation

Targets 2

$.info
$.paths['/node/article/{uuid}'].delete

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: 'API Evangelist enhancements — Drupal JSON: Node Articles API'
  version: 1.0.0
extends: drupal-node-articles-api-openapi.yml
x-generated: '2026-09-17'
x-method: generated
x-source: apis.yml + conventions/drupal-conventions.yml + conformance/drupal-conformance.yml + errors/drupal-problem-types.yml
actions:
- target: $.info
  description: Record that this contract is templated and self-hosted, and that the server host must be replaced
    with the operator’s own Drupal installation.
  update:
    x-self-hosted: true
    x-base-url-template: https://{your-drupal-site}
    x-api-evangelist-note: Drupal is installed software. The example.com server is a placeholder for the operator’s
      domain, not a callable host.
- target: $.info
  description: Declare the domain standard this contract implements.
  update:
    x-domain-standard:
      id: jsonapi-1.0
      name: JSON:API v1.0
      evidence: application/vnd.api+json request/response media type and the JSON:API errors[] envelope
      artifact: conformance/drupal-conformance.yml
- target: $.info
  description: Surface the runtime semantics an agent needs that OpenAPI cannot express.
  update:
    x-conventions:
      idempotency: none — no Idempotency-Key, a retried POST duplicates
      reversibility: none — DELETE is permanent in core; PATCH status=false to unpublish instead
      rate_limits: none published by core; the operator’s edge decides
      pagination: page[offset] / page[limit], cap 50; follow links.next
      resource_id: UUID, not the integer drupal_internal__ id
      artifact: conventions/drupal-conventions.yml
- target: $.info
  description: Point at the derived error catalog for the JSON:API errors[] envelope.
  update:
    x-error-catalog: errors/drupal-problem-types.yml
- target: $.paths['/node/article/{uuid}'].delete
  description: Mark deleteNodeArticle irreversible — Drupal core has no trash or restore.
  update:
    x-irreversible: true
    x-reversal-operation: null
    x-safe-alternative: PATCH the resource’s status attribute to false (unpublish) where the entity supports it