Merge pull request #1836 from acelaya-forks/feature/oas-3.1

Feature/oas 3.1
This commit is contained in:
Alejandro Celaya 2023-07-12 19:42:42 +02:00 committed by GitHub
commit 3ea83f5cc3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 23 additions and 38 deletions

View file

@ -18,6 +18,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com), and this
For example, if you did not enable RabbitMQ real-time updates, instead of triggering a job that ends immediately, the job will not even be enqueued. For example, if you did not enable RabbitMQ real-time updates, instead of triggering a job that ends immediately, the job will not even be enqueued.
* [#1835](https://github.com/shlinkio/shlink/issues/1835) Docker image is now built only when a release is tagged, and new tags are included, for minor and major versions. * [#1835](https://github.com/shlinkio/shlink/issues/1835) Docker image is now built only when a release is tagged, and new tags are included, for minor and major versions.
* [#1055](https://github.com/shlinkio/shlink/issues/1055) Update OAS definition to v3.1.
### Deprecated ### Deprecated
* [#1783](https://github.com/shlinkio/shlink/issues/1783) Deprecated support for openswoole. RoadRunner is the best replacement, with the same capabilities, but much easier and convenient to install and manage. * [#1783](https://github.com/shlinkio/shlink/issues/1783) Deprecated support for openswoole. RoadRunner is the best replacement, with the same capabilities, but much easier and convenient to install and manage.

View file

@ -63,7 +63,7 @@
"symfony/string": "^6.2" "symfony/string": "^6.2"
}, },
"require-dev": { "require-dev": {
"cebe/php-openapi": "^1.7", "devizzent/cebe-php-openapi": "^1.0.1",
"devster/ubench": "^2.1", "devster/ubench": "^2.1",
"infection/infection": "^0.27", "infection/infection": "^0.27",
"openswoole/ide-helper": "~22.0.0", "openswoole/ide-helper": "~22.0.0",

View file

@ -3,18 +3,15 @@
"properties": { "properties": {
"android": { "android": {
"description": "The long URL to redirect to when the short URL is visited from a device running Android", "description": "The long URL to redirect to when the short URL is visited from a device running Android",
"type": "string", "type": ["string"]
"nullable": false
}, },
"ios": { "ios": {
"description": "The long URL to redirect to when the short URL is visited from a device running iOS", "description": "The long URL to redirect to when the short URL is visited from a device running iOS",
"type": "string", "type": ["string"]
"nullable": false
}, },
"desktop": { "desktop": {
"description": "The long URL to redirect to when the short URL is visited from a desktop browser", "description": "The long URL to redirect to when the short URL is visited from a desktop browser",
"type": "string", "type": ["string"]
"nullable": false
} }
} }
} }

View file

@ -5,13 +5,13 @@
}], }],
"properties": { "properties": {
"android": { "android": {
"nullable": true "type": ["null"]
}, },
"ios": { "ios": {
"nullable": true "type": ["null"]
}, },
"desktop": { "desktop": {
"nullable": true "type": ["null"]
} }
} }
} }

View file

@ -2,18 +2,15 @@
"type": "object", "type": "object",
"properties": { "properties": {
"baseUrlRedirect": { "baseUrlRedirect": {
"type": "string", "type": ["string", "null"],
"nullable": true,
"description": "URL to redirect to when a user hits the domain's base URL" "description": "URL to redirect to when a user hits the domain's base URL"
}, },
"regular404Redirect": { "regular404Redirect": {
"type": "string", "type": ["string", "null"],
"nullable": true,
"description": "URL to redirect to when a user hits a not found URL other than an invalid short URL" "description": "URL to redirect to when a user hits a not found URL other than an invalid short URL"
}, },
"invalidShortUrlRedirect": { "invalidShortUrlRedirect": {
"type": "string", "type": ["string", "null"],
"nullable": true,
"description": "URL to redirect to when a user hits an invalid short URL" "description": "URL to redirect to when a user hits an invalid short URL"
} }
} }

View file

@ -6,8 +6,7 @@
}], }],
"properties": { "properties": {
"visitedUrl": { "visitedUrl": {
"type": "string", "type": ["string", "null"],
"nullable": true,
"description": "The originally visited URL that triggered the tracking of this visit" "description": "The originally visited URL that triggered the tracking of this visit"
}, },
"type": { "type": {

View file

@ -55,13 +55,11 @@
"$ref": "./ShortUrlMeta.json" "$ref": "./ShortUrlMeta.json"
}, },
"domain": { "domain": {
"type": "string", "type": ["string", "null"],
"nullable": true,
"description": "The domain in which the short URL was created. Null if it belongs to default domain." "description": "The domain in which the short URL was created. Null if it belongs to default domain."
}, },
"title": { "title": {
"type": "string", "type": ["string", "null"],
"nullable": true,
"description": "A descriptive title of the short URL." "description": "A descriptive title of the short URL."
}, },
"crawlable": { "crawlable": {

View file

@ -10,18 +10,15 @@
}, },
"validSince": { "validSince": {
"description": "The date (in ISO-8601 format) from which this short code will be valid", "description": "The date (in ISO-8601 format) from which this short code will be valid",
"type": "string", "type": ["string", "null"]
"nullable": true
}, },
"validUntil": { "validUntil": {
"description": "The date (in ISO-8601 format) until which this short code will be valid", "description": "The date (in ISO-8601 format) until which this short code will be valid",
"type": "string", "type": ["string", "null"]
"nullable": true
}, },
"maxVisits": { "maxVisits": {
"description": "The maximum number of allowed visits for this short code", "description": "The maximum number of allowed visits for this short code",
"type": "number", "type": ["number", "null"]
"nullable": true
}, },
"validateUrl": { "validateUrl": {
"deprecated": true, "deprecated": true,
@ -36,9 +33,8 @@
"description": "The list of tags to set to the short URL." "description": "The list of tags to set to the short URL."
}, },
"title": { "title": {
"type": "string", "type": ["string", "null"],
"description": "A descriptive title of the short URL.", "description": "A descriptive title of the short URL."
"nullable": true
}, },
"crawlable": { "crawlable": {
"type": "boolean", "type": "boolean",

View file

@ -4,18 +4,15 @@
"properties": { "properties": {
"validSince": { "validSince": {
"description": "The date (in ISO-8601 format) from which this short code will be valid", "description": "The date (in ISO-8601 format) from which this short code will be valid",
"type": "string", "type": ["string", "null"]
"nullable": true
}, },
"validUntil": { "validUntil": {
"description": "The date (in ISO-8601 format) until which this short code will be valid", "description": "The date (in ISO-8601 format) until which this short code will be valid",
"type": "string", "type": ["string", "null"]
"nullable": true
}, },
"maxVisits": { "maxVisits": {
"description": "The maximum number of allowed visits for this short code", "description": "The maximum number of allowed visits for this short code",
"type": "number", "type": ["number", "null"]
"nullable": true
} }
} }
} }

View file

@ -1,5 +1,5 @@
{ {
"openapi": "3.0.3", "openapi": "3.1.0",
"info": { "info": {
"title": "Shlink", "title": "Shlink",
"description": "Shlink, the self-hosted URL shortener", "description": "Shlink, the self-hosted URL shortener",