[PHP-WEBMASTER] [web-php] master: Add OpenAPI definition file (#1250)

Author: Sara Golemon (sgolemon)
Committer: GitHub (web-flow)
Pusher: sgolemon
Date: 2025-03-27T14:06:26-05:00

Commit: Add OpenAPI definition file (#1250) · php/web-php@847105d · GitHub
Raw diff: https://github.com/php/web-php/commit/847105d6ecccd283cbb5614e15cefc10a8bb6376.diff

Add OpenAPI definition file (#1250)

Changed paths:
  A openapi.yml

Diff:

diff --git a/openapi.yml b/openapi.yml
new file mode 100644
index 0000000000..5d2d6da9cd
--- /dev/null
+++ b/openapi.yml
@@ -0,0 +1,94 @@
+openapi: 3.1.0
+info:
+ title: "PHP Website API"
+ description: "APIs available for use on the www.php.net website."
+ version: 2025.4.1
+
+servers:
+ - url: "https://www.php.net"
+ description: "The php.net website."
+
+components:
+ pathItems:
+ releases:
+ get:
+ summary: "Atom feed of php.net news and announcements."
+ responses:
+ "200":
+ description: "Atom feed of php.net news and announcements."
+ content:
+ "application/atom+xml":
+ schema:
+ readOnly: true
+ externalDocs:
+ description: "Standard Atom feed with additional fields in the php: xml namespace."
+ url: PHP: Manual Quick Reference
+
+paths:
+ "/mirror-info.php":
+ get:
+ summary: >-
+ Returns information about the host running php.net.
+ Historically, this was unique per mirror.
+ With the move to a CDN model in 2019, there is now only one canonical source, and thus only one relevant configuration.
+ Refer to web-php/mirror-info.php at master · php/web-php · GitHub for the serialization format of the response.
+ responses:
+ "200":
+ description: "Successful response of host configuration. This API does not error."
+ content:
+ "text/plain":
+ schema:
+ type: string
+ readOnly: true
+ externalDocs:
+ description: "This pipe delimited string's contents are described in the source code for this file."
+ url: "https://github.com/php/web-php/blob/master/mirror-info.php"
+ example: "PHP: Manual Quick Reference OPcache|php-web4|169.254.12.255"
+
+ "/releases/feed.php":
+ "$ref": "#/components/pathItems/releases"
+
+ # Redirects to /releases/feed.php
+ "/relases.atom":
+ "$ref": "#/components/pathItems/releases"
+
+ "/releases/branches.php":
+ get:
+ summary: "Currently active versions of PHP."
+ responses:
+ "200":
+ description: "Actively supported per-branch versions of PHP."
+ content:
+ "application/json":
+ schema:
+ type: array
+ items:
+ type: object
+ properties:
+ branch:
+ description: "Major.Minor branch identifier, e.g. (8.4, 5.6, etc...)"
+ type: string
+ latest:
+ description: "Most recent release on this branch (e.g. 8.4.5, 5.6.40, etc...)"
+ type: string
+ state:
+ description: "Overall release readiness of the branch."
+ type: string
+ enum:
+ - stable
+ - security
+ - eol
+ - future
+ initial_release:
+ description: "Date on which first GA release of the branch was announced."
+ type: string
+ format: date-time
+ active_support_end:
+ description: "Date on which general bugfix support for this branch ends."
+ type: string
+ format: date-time
+ security_support_end:
+ description: "Date on which all support for this branch ends."
+ type: string
+ format: date-time
+