mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2024-12-20 19:06:06 +01:00
baf5f7fbc3
* Fix: extra type in `Author.yaml` * Fix: formatting * Initial library schema * Additional debugging * Fix: spec relative paths * Add: ebook file spec * Fix: response type should be string * Linting updates * Add: missing librarySettings * Temporary fix: Library cron can be null or false * Author controller updates * Add: `/api/libraries/{id}` endpoint * Update library responses * Add: descriptions * Fix: queries should be in body * Fix: `body` should be `requestBody` * Move: `libraryController` paths, clean up `requestBody` * Clean up libraryController parameters * Move: author endpoints to controller * Add `get` for author images * Simplify author schema with items * Remove: unused response type * Update: formatting * Update json * Update requestBody on LibraryController * LibrarySettings update * Replace: generic parameter with path specific parameter * Fix: requestBody descriptions * Fix: match post operation * Temporary: nullable Author schemas * LibraryController items endpoint * Add: delete library items with issues * Massive cleanup and violation fixing * Update bundled spec * Add: remove library items with issues * Add: library items endpoint * Fix: errors * Fix: base schemas * Add: series schemas * Add: library series endpoint * Fix: oneOf and array issues * Add: author search region for matching * Add: series endpoints * Fix: series issues * Add library series endpoint and update deprecation * Fix: series endpoint deprecation * Fix: `name` in `sortDesc` schema * Add: workflow for linting spec * Update OpenAPI readme
295 lines
10 KiB
YAML
295 lines
10 KiB
YAML
components:
|
|
schemas:
|
|
authorUpdated:
|
|
description: Whether the author was updated without errors. Will not exist if author was merged.
|
|
type: boolean
|
|
nullable: true
|
|
authorMerged:
|
|
description: Whether the author was merged with another author. Will not exist if author was updated.
|
|
type: boolean
|
|
nullable: true
|
|
authorInclude:
|
|
description: A comma separated list of what to include with the author. The options are `items` and `series`. `series` will only have an effect if `items` is included. For example, the value `items,series` will include both library items and series.
|
|
type: string
|
|
example: 'items'
|
|
authorLibraryId:
|
|
$ref: '../objects/Library.yaml#/components/schemas/libraryId'
|
|
authorSearchName:
|
|
description: The name of the author to use for searching.
|
|
type: string
|
|
example: Terry Goodkind
|
|
authorName:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorName'
|
|
imageUrl:
|
|
description: The URL of the image to add to the server
|
|
type: string
|
|
format: uri
|
|
example: https://images-na.ssl-images-amazon.com/images/I/51NoQTm33OL.__01_SX120_CR0,0,120,120__.jpg
|
|
imageWidth:
|
|
description: The requested width of image in pixels.
|
|
type: integer
|
|
default: 400
|
|
example: 400
|
|
imageHeight:
|
|
description: The requested height of image in pixels. If `null`, the height is scaled to maintain aspect ratio based on the requested width.
|
|
type: integer
|
|
nullable: true
|
|
default: null
|
|
example: 600
|
|
imageFormat:
|
|
description: The requested output format.
|
|
type: string
|
|
default: jpeg
|
|
example: webp
|
|
imageRaw:
|
|
description: Return the raw image without scaling if true.
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
author200:
|
|
description: Author found.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/author'
|
|
author404:
|
|
description: Author not found.
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
example: Author not found.
|
|
paths:
|
|
/api/authors/{id}:
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: Author ID
|
|
required: true
|
|
schema:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorId'
|
|
get:
|
|
operationId: getAuthorById
|
|
summary: Get an author by ID
|
|
description: Get an author by ID. The author's books and series can be included in the response.
|
|
tags:
|
|
- Authors
|
|
requestBody:
|
|
required: false
|
|
description: The author object to create.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
include:
|
|
$ref: '#/components/schemas/authorInclude'
|
|
library:
|
|
$ref: '#/components/schemas/authorLibraryId'
|
|
responses:
|
|
'200':
|
|
description: getAuthorById OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/author'
|
|
'404':
|
|
$ref: '#/components/responses/author404'
|
|
patch:
|
|
operationId: updateAuthorById
|
|
summary: Update an author by ID
|
|
description: Update an author by ID. The author's name and description can be updated. This endpoint will merge two authors if the new author name matches another author name in the database.
|
|
tags:
|
|
- Authors
|
|
requestBody:
|
|
description: The author object to update.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
name:
|
|
$ref: '#/components/schemas/authorName'
|
|
description:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorDescription'
|
|
imagePath:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorImagePath'
|
|
asin:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin'
|
|
responses:
|
|
'200':
|
|
description: updateAuthorById OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
oneOf:
|
|
- $ref: '../objects/entities/Author.yaml#/components/schemas/author'
|
|
- $ref: '#/components/schemas/authorUpdated'
|
|
- $ref: '#/components/schemas/authorMerged'
|
|
'404':
|
|
$ref: '#/components/responses/author404'
|
|
delete:
|
|
operationId: deleteAuthorById
|
|
summary: Delete an author by ID
|
|
description: Delete an author by ID. This will remove the author from all books.
|
|
tags:
|
|
- Authors
|
|
responses:
|
|
'200':
|
|
description: deleteAuthorById OK
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
example: Author deleted.
|
|
'404':
|
|
$ref: '#/components/responses/author404'
|
|
/api/authors/{id}/image:
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: Author ID
|
|
required: true
|
|
schema:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorId'
|
|
get:
|
|
operationId: getAuthorImageById
|
|
summary: Get an author image by author ID
|
|
description: Get an author image by author ID. The image will be returned in the requested format and size.
|
|
tags:
|
|
- Authors
|
|
requestBody:
|
|
required: false
|
|
description: The author image to get.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
width:
|
|
$ref: '#/components/schemas/imageWidth'
|
|
height:
|
|
$ref: '#/components/schemas/imageHeight'
|
|
format:
|
|
$ref: '#/components/schemas/imageFormat'
|
|
raw:
|
|
$ref: '#/components/schemas/imageRaw'
|
|
responses:
|
|
'200':
|
|
description: getAuthorImageById OK
|
|
content:
|
|
image/webp:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
image/jpeg:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
image/*:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'404':
|
|
$ref: '#/components/responses/author404'
|
|
post:
|
|
operationId: addAuthorImageById
|
|
summary: Add an author image to the server
|
|
description: Add an author image to the server. The image will be downloaded from the provided URL and stored on the server.
|
|
tags:
|
|
- Authors
|
|
requestBody:
|
|
required: true
|
|
description: The author image to add by URL.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/imageUrl'
|
|
responses:
|
|
'200':
|
|
description: addAuthorImageById OK
|
|
content:
|
|
image/*:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'404':
|
|
$ref: '#/components/responses/author404'
|
|
patch:
|
|
operationId: updateAuthorImageById
|
|
summary: Update an author image by author ID
|
|
description: Update an author image by author ID. The image will be resized if the width, height, or format is provided.
|
|
tags:
|
|
- Authors
|
|
requestBody:
|
|
description: The author image to update.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
width:
|
|
$ref: '#/components/schemas/imageWidth'
|
|
height:
|
|
$ref: '#/components/schemas/imageHeight'
|
|
format:
|
|
$ref: '#/components/schemas/imageFormat'
|
|
raw:
|
|
$ref: '#/components/schemas/imageRaw'
|
|
responses:
|
|
'200':
|
|
description: updateAuthorImageById OK
|
|
content:
|
|
image/*:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
'404':
|
|
$ref: '#/components/responses/author404'
|
|
delete:
|
|
operationId: deleteAuthorImageById
|
|
summary: Delete an author image by author ID
|
|
description: Delete an author image by author ID. This will remove the image from the server and the database.
|
|
tags:
|
|
- Authors
|
|
responses:
|
|
'200':
|
|
description: deleteAuthorImageById OK
|
|
'404':
|
|
$ref: '#/components/responses/author404'
|
|
/api/authors/{id}/match:
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
description: Author ID
|
|
required: true
|
|
schema:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorId'
|
|
post:
|
|
operationId: matchAuthorById
|
|
summary: Match the author against Audible using quick match
|
|
description: Match the author against Audible using quick match. Quick match updates the author's description and image (if no image already existed) with information from audible. Either `asin` or `q` must be provided, with `asin` taking priority if both are provided.
|
|
tags:
|
|
- Authors
|
|
requestBody:
|
|
required: true
|
|
description: The author object to match against an online provider.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
q:
|
|
$ref: '#/components/schemas/authorSearchName'
|
|
asin:
|
|
$ref: '../objects/entities/Author.yaml#/components/schemas/authorAsin'
|
|
region:
|
|
$ref: '../schemas.yaml#/components/schemas/region'
|
|
responses:
|
|
'200':
|
|
description: matchAuthorById OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
oneOf:
|
|
- $ref: '../objects/entities/Author.yaml#/components/schemas/author'
|
|
- $ref: '#/components/schemas/authorUpdated'
|
|
'404':
|
|
$ref: '#/components/responses/author404'
|