You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
778 lines
16 KiB
778 lines
16 KiB
{ |
|
"openapi": "3.1.0", |
|
"info": { |
|
"title": "News", |
|
"version": "18.1.1", |
|
"description": "An RSS/Atom feed reader", |
|
"license": { |
|
"name": "agpl", |
|
"identifier": " AGPL-3.0" |
|
} |
|
}, |
|
"servers": [ |
|
{ |
|
"url": "https://{hostname}:{port}", |
|
"variables": { |
|
"hostname": { |
|
"default": "localhost" |
|
}, |
|
"port": { |
|
"default": "8080" |
|
} |
|
} |
|
} |
|
], |
|
"security": [ |
|
{ |
|
"basic_auth": [] |
|
} |
|
], |
|
"tags": [ |
|
{ |
|
"name": "news" |
|
} |
|
], |
|
"components": { |
|
"schemas": { |
|
"NewsListFeeds": { |
|
"type": "object", |
|
"properties": { |
|
"starredCount": { |
|
"type": "integer" |
|
}, |
|
"newestItemId": { |
|
"type": "integer" |
|
}, |
|
"feeds": { |
|
"type": "array", |
|
"items": { |
|
"$ref": "#/components/schemas/NewsFeed" |
|
} |
|
} |
|
} |
|
}, |
|
"NewsFeed": { |
|
"type": "object", |
|
"properties": { |
|
"id": { |
|
"type": "integer" |
|
}, |
|
"url": { |
|
"type": "string" |
|
}, |
|
"title": { |
|
"type": "string" |
|
}, |
|
"faviconLink": { |
|
"type": "string" |
|
}, |
|
"added": { |
|
"type": "integer" |
|
}, |
|
"folderId": { |
|
"type": "integer" |
|
}, |
|
"unreadCount": { |
|
"type": "integer" |
|
}, |
|
"ordering": { |
|
"type": "integer" |
|
}, |
|
"link": { |
|
"type": "string" |
|
}, |
|
"pinned": { |
|
"type": "boolean" |
|
}, |
|
"updateErrorCount": { |
|
"type": "integer" |
|
}, |
|
"lastUpdateError": { |
|
"type": "string" |
|
}, |
|
"items": { |
|
"type": "array", |
|
"items": { |
|
"$ref": "#/components/schemas/NewsArticle" |
|
} |
|
} |
|
} |
|
}, |
|
"NewsArticle": { |
|
"type": "object", |
|
"properties": { |
|
"id": { |
|
"type": "integer" |
|
}, |
|
"guid": { |
|
"type": "string" |
|
}, |
|
"guidHash": { |
|
"type": "string" |
|
}, |
|
"url": { |
|
"type": "string" |
|
}, |
|
"title": { |
|
"type": "string" |
|
}, |
|
"author": { |
|
"type": "string" |
|
}, |
|
"pubDate": { |
|
"type": "integer" |
|
}, |
|
"updatedDate": { |
|
"type": "integer" |
|
}, |
|
"body": { |
|
"type": "string" |
|
}, |
|
"enclosureMime": { |
|
"type": "string" |
|
}, |
|
"enclosureLink": { |
|
"type": "string" |
|
}, |
|
"mediaThumbnail": { |
|
"type": "string" |
|
}, |
|
"mediaDescription": { |
|
"type": "string" |
|
}, |
|
"feedId": { |
|
"type": "integer" |
|
}, |
|
"unread": { |
|
"type": "boolean" |
|
}, |
|
"starred": { |
|
"type": "boolean" |
|
}, |
|
"lastModified": { |
|
"type": "integer" |
|
}, |
|
"rtl": { |
|
"type": "boolean" |
|
}, |
|
"fingerprint": { |
|
"type": "string" |
|
}, |
|
"contentHash": { |
|
"type": "string" |
|
} |
|
} |
|
}, |
|
"NewsListArticles": { |
|
"type": "object", |
|
"properties": { |
|
"items": { |
|
"type": "array", |
|
"items": { |
|
"$ref": "#/components/schemas/NewsArticle" |
|
} |
|
} |
|
} |
|
}, |
|
"NewsListFolders": { |
|
"type": "object", |
|
"properties": { |
|
"folders": { |
|
"type": "array", |
|
"items": { |
|
"$ref": "#/components/schemas/NewsFolder" |
|
} |
|
} |
|
} |
|
}, |
|
"NewsFolder": { |
|
"type": "object", |
|
"properties": { |
|
"id": { |
|
"type": "integer" |
|
}, |
|
"name": { |
|
"type": "string" |
|
}, |
|
"opened": { |
|
"type": "boolean" |
|
}, |
|
"feeds": { |
|
"description": "This seems to be broken. In testing it is always empty", |
|
"deprecated": true, |
|
"type": "array", |
|
"items": { |
|
"$ref": "#/components/schemas/NewsFeed" |
|
} |
|
} |
|
} |
|
}, |
|
"OCSMeta": { |
|
"type": "object", |
|
"properties": { |
|
"status": { |
|
"type": "string" |
|
}, |
|
"statuscode": { |
|
"type": "integer" |
|
}, |
|
"message": { |
|
"type": "string" |
|
}, |
|
"totalitems": { |
|
"type": "string" |
|
}, |
|
"itemsperpage": { |
|
"type": "string" |
|
} |
|
} |
|
} |
|
}, |
|
"securitySchemes": { |
|
"basic_auth": { |
|
"type": "http", |
|
"scheme": "basic" |
|
} |
|
} |
|
}, |
|
"paths": { |
|
"/apps/news/api/v1-2/folders": { |
|
"get": { |
|
"operationId": "list-folders", |
|
"tags": [ |
|
"news" |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"$ref": "#/components/schemas/NewsListFolders" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"post": { |
|
"operationId": "create-folder", |
|
"tags": [ |
|
"news" |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "name", |
|
"in": "query", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"$ref": "#/components/schemas/NewsListFolders" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/folders/{folderId}": { |
|
"parameters": [ |
|
{ |
|
"name": "folderId", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"put": { |
|
"operationId": "rename-folder", |
|
"tags": [ |
|
"news" |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "name", |
|
"in": "query", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
}, |
|
"delete": { |
|
"operationId": "delete-folder", |
|
"tags": [ |
|
"news" |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/folders/{folderId}/read": { |
|
"parameters": [ |
|
{ |
|
"name": "folderId", |
|
"in": "path", |
|
"description": "ID of the folder", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"put": { |
|
"operationId": "mark-folder-as-read", |
|
"tags": [ |
|
"news" |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "newestItemId", |
|
"in": "query", |
|
"description": "The newest read item", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/feeds": { |
|
"get": { |
|
"operationId": "list-feeds", |
|
"tags": [ |
|
"news" |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"$ref": "#/components/schemas/NewsListFeeds" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"post": { |
|
"operationId": "add-feed", |
|
"tags": [ |
|
"news" |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "url", |
|
"in": "query", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
}, |
|
{ |
|
"name": "folderId", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"$ref": "#/components/schemas/NewsListFeeds" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/feeds/{feedId}": { |
|
"parameters": [ |
|
{ |
|
"name": "feedId", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"delete": { |
|
"operationId": "delete-feed", |
|
"tags": [ |
|
"news" |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/feeds/{feedId}/move": { |
|
"parameters": [ |
|
{ |
|
"name": "feedId", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"put": { |
|
"operationId": "move-feed", |
|
"tags": [ |
|
"news" |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "folderId", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/feeds/{feedId}/rename": { |
|
"parameters": [ |
|
{ |
|
"name": "feedId", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"put": { |
|
"operationId": "rename-feed", |
|
"tags": [ |
|
"news" |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "feedTitle", |
|
"in": "query", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/feeds/{feedId}/read": { |
|
"parameters": [ |
|
{ |
|
"name": "feedId", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"put": { |
|
"operationId": "mark-feed-as-read", |
|
"tags": [ |
|
"news" |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "newestItemId", |
|
"in": "query", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/items": { |
|
"get": { |
|
"operationId": "list-articles", |
|
"tags": [ |
|
"news" |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "type", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer", |
|
"default": 3 |
|
} |
|
}, |
|
{ |
|
"name": "id", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer", |
|
"default": 0 |
|
} |
|
}, |
|
{ |
|
"name": "getRead", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer", |
|
"default": 1 |
|
} |
|
}, |
|
{ |
|
"name": "batchSize", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer", |
|
"default": -1 |
|
} |
|
}, |
|
{ |
|
"name": "offset", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer", |
|
"default": 0 |
|
} |
|
}, |
|
{ |
|
"name": "oldestFirst", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer", |
|
"default": 0 |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"$ref": "#/components/schemas/NewsListArticles" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/items/updated": { |
|
"get": { |
|
"operationId": "list-updated-articles", |
|
"tags": [ |
|
"news" |
|
], |
|
"parameters": [ |
|
{ |
|
"name": "type", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer", |
|
"default": 3 |
|
} |
|
}, |
|
{ |
|
"name": "id", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer", |
|
"default": 0 |
|
} |
|
}, |
|
{ |
|
"name": "lastModified", |
|
"in": "query", |
|
"required": false, |
|
"schema": { |
|
"type": "integer", |
|
"default": 0 |
|
} |
|
} |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "", |
|
"content": { |
|
"application/json": { |
|
"schema": { |
|
"$ref": "#/components/schemas/NewsListArticles" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/items/{itemId}/read": { |
|
"parameters": [ |
|
{ |
|
"name": "itemId", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"put": { |
|
"operationId": "mark-article-as-read", |
|
"tags": [ |
|
"news" |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/items/{itemId}/unread": { |
|
"parameters": [ |
|
{ |
|
"name": "itemId", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
} |
|
], |
|
"put": { |
|
"operationId": "mark-article-as-unread", |
|
"tags": [ |
|
"news" |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/items/{feedId}/{guidHash}/star": { |
|
"parameters": [ |
|
{ |
|
"name": "feedId", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
}, |
|
{ |
|
"name": "guidHash", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
], |
|
"put": { |
|
"operationId": "star-article", |
|
"tags": [ |
|
"news" |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
}, |
|
"/apps/news/api/v1-2/items/{feedId}/{guidHash}/unstar": { |
|
"parameters": [ |
|
{ |
|
"name": "feedId", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "integer" |
|
} |
|
}, |
|
{ |
|
"name": "guidHash", |
|
"in": "path", |
|
"required": true, |
|
"schema": { |
|
"type": "string" |
|
} |
|
} |
|
], |
|
"put": { |
|
"operationId": "unstar-article", |
|
"tags": [ |
|
"news" |
|
], |
|
"responses": { |
|
"200": { |
|
"description": "" |
|
} |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|