Skip to content

Add OpenAPI definition file #1250

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 27, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions openapi.yml
Original file line number Diff line number Diff line change
@@ -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: http://php.net/ns/releases

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 https://github.com/php/web-php/blob/master/mirror-info.php 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: "https://www.php.net/|8.4.5|1743832640|0|0|en|manual-noalias|1|Core,date,libxml,json,SPL,Zend OPcache|php-web4|169.254.12.255"

"/releases/feed.php":
"$ref": "#/components/pathItems/releases"

# Redirects to /releases/feed.php
"/relases.atom":
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this typo intentional? 😅

Suggested change
"/relases.atom":
"/releases.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