6087 lines
251 KiB
JSON
6087 lines
251 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "Mangarr API",
|
|
"description": "",
|
|
"version": "1.0.0"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "/",
|
|
"description": ""
|
|
}
|
|
],
|
|
"paths": {
|
|
"/api/content-sources": {
|
|
"get": {
|
|
"operationId": "api_content-sources_get_collection",
|
|
"tags": [
|
|
"ContentSource"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "ContentSource collection",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hydra:member": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonld"
|
|
}
|
|
},
|
|
"hydra:totalItems": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"hydra:view": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@id": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"@type": {
|
|
"type": "string"
|
|
},
|
|
"hydra:first": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"hydra:last": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"hydra:previous": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"hydra:next": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
},
|
|
"example": {
|
|
"@id": "string",
|
|
"type": "string",
|
|
"hydra:first": "string",
|
|
"hydra:last": "string",
|
|
"hydra:previous": "string",
|
|
"hydra:next": "string"
|
|
}
|
|
},
|
|
"hydra:search": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@type": {
|
|
"type": "string"
|
|
},
|
|
"hydra:template": {
|
|
"type": "string"
|
|
},
|
|
"hydra:variableRepresentation": {
|
|
"type": "string"
|
|
},
|
|
"hydra:mapping": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@type": {
|
|
"type": "string"
|
|
},
|
|
"variable": {
|
|
"type": "string"
|
|
},
|
|
"property": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"required": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"hydra:member"
|
|
]
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"_embedded": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonhal"
|
|
}
|
|
},
|
|
"totalItems": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"itemsPerPage": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"first": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"last": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"next": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"previous": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"_links",
|
|
"_embedded"
|
|
]
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"summary": "Retrieves the collection of ContentSource resources.",
|
|
"description": "Retrieves the collection of ContentSource resources.",
|
|
"parameters": [
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"description": "The collection page number",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 1
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"post": {
|
|
"operationId": "api_content-sources_post",
|
|
"tags": [
|
|
"ContentSource"
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "ContentSource resource created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
},
|
|
"links": {}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable entity"
|
|
}
|
|
},
|
|
"summary": "Creates a ContentSource resource.",
|
|
"description": "Creates a ContentSource resource.",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"description": "The new ContentSource resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/content-sources/export": {
|
|
"get": {
|
|
"operationId": "api_content-sourcesexport_get",
|
|
"tags": [
|
|
"ContentSource"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "ContentSource resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Retrieves a ContentSource resource.",
|
|
"description": "Retrieves a ContentSource resource.",
|
|
"parameters": [],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/content-sources/import": {
|
|
"post": {
|
|
"operationId": "api_content-sourcesimport_post",
|
|
"tags": [
|
|
"ContentSource"
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "ContentSource resource created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
},
|
|
"links": {}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable entity"
|
|
}
|
|
},
|
|
"summary": "Creates a ContentSource resource.",
|
|
"description": "Creates a ContentSource resource.",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"description": "The new ContentSource resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/content-sources/{id}": {
|
|
"get": {
|
|
"operationId": "api_content-sources_id_get",
|
|
"tags": [
|
|
"ContentSource"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "ContentSource resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Retrieves a ContentSource resource.",
|
|
"description": "Retrieves a ContentSource resource.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "GetContentSourceResource identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"put": {
|
|
"operationId": "api_content-sources_id_put",
|
|
"tags": [
|
|
"ContentSource"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "ContentSource resource updated",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
},
|
|
"links": {}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable entity"
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Replaces the ContentSource resource.",
|
|
"description": "Replaces the ContentSource resource.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "UpsertContentSourceResource identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "The updated ContentSource resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ContentSource"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/conversions/convert": {
|
|
"post": {
|
|
"operationId": "api_conversionsconvert_post",
|
|
"tags": [
|
|
"Conversion"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "File converted successfully",
|
|
"content": {
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "binary"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"summary": "Convert comic book file to CBZ",
|
|
"description": "Converts a CBR or CBZ file to CBZ format and returns the converted file for download",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"file"
|
|
],
|
|
"properties": {
|
|
"file": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"description": "Comic book file to convert (CBR, CBZ, max 150MB)"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": false
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/jobs": {
|
|
"get": {
|
|
"operationId": "api_jobs_get_collection",
|
|
"tags": [
|
|
"Job"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Job collection",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Job"
|
|
}
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hydra:member": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Job.jsonld"
|
|
}
|
|
},
|
|
"hydra:totalItems": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"hydra:view": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@id": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"@type": {
|
|
"type": "string"
|
|
},
|
|
"hydra:first": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"hydra:last": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"hydra:previous": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"hydra:next": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
},
|
|
"example": {
|
|
"@id": "string",
|
|
"type": "string",
|
|
"hydra:first": "string",
|
|
"hydra:last": "string",
|
|
"hydra:previous": "string",
|
|
"hydra:next": "string"
|
|
}
|
|
},
|
|
"hydra:search": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@type": {
|
|
"type": "string"
|
|
},
|
|
"hydra:template": {
|
|
"type": "string"
|
|
},
|
|
"hydra:variableRepresentation": {
|
|
"type": "string"
|
|
},
|
|
"hydra:mapping": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@type": {
|
|
"type": "string"
|
|
},
|
|
"variable": {
|
|
"type": "string"
|
|
},
|
|
"property": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"required": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"hydra:member"
|
|
]
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Job"
|
|
}
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"_embedded": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Job.jsonhal"
|
|
}
|
|
},
|
|
"totalItems": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"itemsPerPage": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"first": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"last": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"next": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"previous": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"_links",
|
|
"_embedded"
|
|
]
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Job"
|
|
}
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Job"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"summary": "Retrieves the collection of Job resources.",
|
|
"description": "Retrieves the collection of Job resources.",
|
|
"parameters": [
|
|
{
|
|
"name": "status",
|
|
"in": "query",
|
|
"description": "Filtrer par status (s\u00e9par\u00e9s par des virgules pour plusieurs statuts, ex: \"pending,in_progress\" ou sous forme de tableau avec \"status[]=\")",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string",
|
|
"example": "pending,in_progress"
|
|
},
|
|
{
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"pending",
|
|
"in_progress",
|
|
"completed",
|
|
"failed",
|
|
"cancelled"
|
|
]
|
|
},
|
|
"example": [
|
|
"pending",
|
|
"in_progress"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "type",
|
|
"in": "query",
|
|
"description": "Filtrer par type de job (ex: scraping_job)",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "createdAfter",
|
|
"in": "query",
|
|
"description": "Date de cr\u00e9ation minimum (format ISO8601)",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "createdBefore",
|
|
"in": "query",
|
|
"description": "Date de cr\u00e9ation maximum (format ISO8601)",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"description": "Num\u00e9ro de la page",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 1,
|
|
"minimum": 1
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"description": "Nombre d'\u00e9l\u00e9ments par page",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 20,
|
|
"minimum": 1
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "sortBy",
|
|
"in": "query",
|
|
"description": "Champ de tri",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"createdAt",
|
|
"type",
|
|
"status"
|
|
],
|
|
"default": "createdAt"
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "sortOrder",
|
|
"in": "query",
|
|
"description": "Ordre de tri",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"ASC",
|
|
"DESC"
|
|
],
|
|
"default": "DESC"
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/manga/chapters/fetch": {
|
|
"post": {
|
|
"operationId": "api_mangachaptersfetch_post",
|
|
"tags": [
|
|
"Mangadex"
|
|
],
|
|
"responses": {
|
|
"202": {
|
|
"description": "Demande de r\u00e9cup\u00e9ration accept\u00e9e et mise en file d'attente"
|
|
},
|
|
"422": {
|
|
"description": "Donn\u00e9es de validation invalides"
|
|
}
|
|
},
|
|
"summary": "R\u00e9cup\u00e9rer les chapitres d'un manga",
|
|
"description": "Lance le processus de r\u00e9cup\u00e9ration des chapitres depuis la source externe pour un manga donn\u00e9",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"description": "Donn\u00e9es requises pour r\u00e9cup\u00e9rer les chapitres",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mangaId": {
|
|
"type": "string",
|
|
"description": "L'identifiant unique du manga"
|
|
}
|
|
},
|
|
"required": [
|
|
"mangaId"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/manga/chapters/{id}": {
|
|
"delete": {
|
|
"operationId": "delete_chapter",
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Chapter successfully deleted"
|
|
},
|
|
"404": {
|
|
"description": "Chapter not found"
|
|
}
|
|
},
|
|
"summary": "Delete a chapter (soft delete)",
|
|
"description": "Marks a chapter as deleted by setting its visibility to false",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "The chapter ID",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/manga/chapters/{id}/cbz": {
|
|
"delete": {
|
|
"operationId": "delete_cbz",
|
|
"tags": [
|
|
"Cbz"
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "CBZ file successfully deleted"
|
|
},
|
|
"404": {
|
|
"description": "Chapter or CBZ file not found"
|
|
}
|
|
},
|
|
"summary": "Delete chapter CBZ file",
|
|
"description": "Removes the CBZ file for a specific chapter and updates the chapter accordingly",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "The chapter ID",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/manga/chapters/{id}/download": {
|
|
"get": {
|
|
"operationId": "download_chapter_cbz",
|
|
"tags": [
|
|
"Cbz"
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Cbz resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {}
|
|
},
|
|
"text/html": {
|
|
"schema": {}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Retrieves a Cbz resource.",
|
|
"description": "Retrieves a Cbz resource.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "DownloadCbzResource identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/manga/{mangaId}/chapters/refresh": {
|
|
"post": {
|
|
"operationId": "api_manga_mangaIdchaptersrefresh_post",
|
|
"tags": [
|
|
"MangaRefresh"
|
|
],
|
|
"responses": {
|
|
"202": {
|
|
"description": "Demande de refresh accept\u00e9e et mise en file d'attente"
|
|
},
|
|
"404": {
|
|
"description": "Manga non trouv\u00e9"
|
|
}
|
|
},
|
|
"summary": "Rafra\u00eechir les chapitres d'un manga",
|
|
"description": "Lance la synchronisation incr\u00e9mentale avec scraping automatique des nouveaux chapitres",
|
|
"parameters": [
|
|
{
|
|
"name": "mangaId",
|
|
"in": "path",
|
|
"description": "L'identifiant unique du manga",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "The new MangaRefresh resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaRefresh"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaRefresh.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaRefresh"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaRefresh.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaRefresh"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaRefresh"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/manga/{mangaId}/monitoring/toggle": {
|
|
"post": {
|
|
"operationId": "api_manga_mangaIdmonitoringtoggle_post",
|
|
"tags": [
|
|
"MangaMonitoring"
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Monitoring modifi\u00e9 avec succ\u00e8s"
|
|
},
|
|
"404": {
|
|
"description": "Manga non trouv\u00e9"
|
|
},
|
|
"422": {
|
|
"description": "Donn\u00e9es de validation invalides"
|
|
}
|
|
},
|
|
"summary": "Activer/D\u00e9sactiver le monitoring d'un manga",
|
|
"description": "Active ou d\u00e9sactive le monitoring automatique pour recevoir les nouveaux chapitres",
|
|
"parameters": [
|
|
{
|
|
"name": "mangaId",
|
|
"in": "path",
|
|
"description": "L'identifiant unique du manga",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "\u00c9tat du monitoring \u00e0 appliquer",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"enabled": {
|
|
"type": "boolean",
|
|
"description": "True pour activer le monitoring, false pour le d\u00e9sactiver",
|
|
"example": true
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangadex-search": {
|
|
"get": {
|
|
"operationId": "api_mangadex-search_get",
|
|
"tags": [
|
|
"Mangadex"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Mangadex resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex.MangaSearchCollection"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex.MangaSearchCollection.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex.MangaSearchCollection"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex.MangaSearchCollection.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex.MangaSearchCollection"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex.MangaSearchCollection"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Retrieves a Mangadex resource.",
|
|
"description": "Retrieves a Mangadex resource.",
|
|
"parameters": [
|
|
{
|
|
"name": "title",
|
|
"in": "query",
|
|
"description": "The title to search for",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas": {
|
|
"get": {
|
|
"operationId": "api_mangas_get_collection",
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Manga collection",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Manga.MangaCollection"
|
|
}
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"hydra:member": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Manga.MangaCollection.jsonld"
|
|
}
|
|
},
|
|
"hydra:totalItems": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"hydra:view": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@id": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"@type": {
|
|
"type": "string"
|
|
},
|
|
"hydra:first": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"hydra:last": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"hydra:previous": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
},
|
|
"hydra:next": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
},
|
|
"example": {
|
|
"@id": "string",
|
|
"type": "string",
|
|
"hydra:first": "string",
|
|
"hydra:last": "string",
|
|
"hydra:previous": "string",
|
|
"hydra:next": "string"
|
|
}
|
|
},
|
|
"hydra:search": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@type": {
|
|
"type": "string"
|
|
},
|
|
"hydra:template": {
|
|
"type": "string"
|
|
},
|
|
"hydra:variableRepresentation": {
|
|
"type": "string"
|
|
},
|
|
"hydra:mapping": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"@type": {
|
|
"type": "string"
|
|
},
|
|
"variable": {
|
|
"type": "string"
|
|
},
|
|
"property": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"required": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"hydra:member"
|
|
]
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Manga.MangaCollection"
|
|
}
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"_embedded": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Manga.MangaCollection.jsonhal"
|
|
}
|
|
},
|
|
"totalItems": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"itemsPerPage": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"first": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"last": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"next": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
},
|
|
"previous": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"_links",
|
|
"_embedded"
|
|
]
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Manga.MangaCollection"
|
|
}
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/Manga.MangaCollection"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"summary": "Retrieves the collection of Manga resources.",
|
|
"description": "Retrieves the collection of Manga resources.",
|
|
"parameters": [
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"description": "The collection page number",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 1
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/by-id/{id}": {
|
|
"get": {
|
|
"operationId": "api_mangasby-id_id_get",
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Manga resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Retrieves a Manga resource.",
|
|
"description": "Retrieves a Manga resource.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "The manga identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/by-slug/{slug}": {
|
|
"get": {
|
|
"operationId": "get_manga_by_slug",
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Manga resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.MangaDetail"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Retrieves a Manga resource.",
|
|
"description": "Retrieves a Manga resource.",
|
|
"parameters": [
|
|
{
|
|
"name": "slug",
|
|
"in": "path",
|
|
"description": "GetMangaBySlugResource identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/create": {
|
|
"post": {
|
|
"operationId": "api_mangascreate_post",
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Manga resource created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
}
|
|
},
|
|
"links": {}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable entity"
|
|
}
|
|
},
|
|
"summary": "Create a new manga directly",
|
|
"description": "Creates a new manga with provided data",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"description": "The new Manga resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/create-from-mangadex": {
|
|
"post": {
|
|
"operationId": "api_mangascreate-from-mangadex_post",
|
|
"tags": [
|
|
"Mangadex"
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Mangadex resource created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Mangadex"
|
|
}
|
|
}
|
|
},
|
|
"links": {}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable entity"
|
|
}
|
|
},
|
|
"summary": "Create a new manga from Mangadex",
|
|
"description": "Creates a new manga by fetching its data from Mangadex using an external ID",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"required": [
|
|
"externalId"
|
|
],
|
|
"properties": {
|
|
"externalId": {
|
|
"type": "string",
|
|
"description": "The Mangadex ID of the manga"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": false
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/search": {
|
|
"get": {
|
|
"operationId": "api_mangassearch_get",
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "R\u00e9sultats de la recherche",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaSearchItem"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Param\u00e8tres de recherche invalides"
|
|
}
|
|
},
|
|
"summary": "Recherche des mangas dans la biblioth\u00e8que locale",
|
|
"description": "Recherche des mangas par titre, slug ou auteur (minimum 3 caract\u00e8res)",
|
|
"parameters": [
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"description": "Terme de recherche (minimum 3 caract\u00e8res)",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"minLength": 3
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"description": "Num\u00e9ro de page",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 1,
|
|
"minimum": 1
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"description": "Nombre de r\u00e9sultats par page",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 20,
|
|
"minimum": 1,
|
|
"maximum": 50
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/{id}/chapters": {
|
|
"get": {
|
|
"operationId": "api_mangas_idchapters_get",
|
|
"tags": [
|
|
"Chapters"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Chapters resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Chapters.ChapterCollection"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Chapters.ChapterCollection.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Chapters.ChapterCollection"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Chapters.ChapterCollection.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Chapters.ChapterCollection"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Chapters.ChapterCollection"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Retrieves a Chapters resource.",
|
|
"description": "Retrieves a Chapters resource.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "The manga identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"description": "The page number",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 1
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"description": "Number of items per page",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 20
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "sortOrder",
|
|
"in": "query",
|
|
"description": "Sort order for chapters",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string",
|
|
"enum": [
|
|
"asc",
|
|
"desc"
|
|
],
|
|
"default": "desc"
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/{id}/edit": {
|
|
"put": {
|
|
"operationId": "api_mangas_idedit_put",
|
|
"tags": [
|
|
"Manga"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Manga resource updated",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
}
|
|
},
|
|
"links": {}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable entity"
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Edit an existing manga",
|
|
"description": "Updates an existing manga with provided data (partial update supported)",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "EditMangaResource identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "The updated Manga resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Manga"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/{id}/preferred-sources": {
|
|
"get": {
|
|
"operationId": "api_mangas_idpreferred-sources_get",
|
|
"tags": [
|
|
"Scraping"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Sources r\u00e9cup\u00e9r\u00e9es avec succ\u00e8s",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"mangaId": {
|
|
"type": "string"
|
|
},
|
|
"hasPreferredSources": {
|
|
"type": "boolean"
|
|
},
|
|
"sources": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"baseUrl": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"isActive": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"example": {
|
|
"mangaId": "1",
|
|
"hasPreferredSources": true,
|
|
"sources": [
|
|
{
|
|
"id": "1",
|
|
"name": "MangaDex",
|
|
"baseUrl": "https://mangadex.org",
|
|
"description": "Source principale",
|
|
"isActive": true
|
|
},
|
|
{
|
|
"id": "2",
|
|
"name": "MangaKakalot",
|
|
"baseUrl": "https://mangakakalot.com",
|
|
"description": "Source secondaire",
|
|
"isActive": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "R\u00e9cup\u00e9rer les sources pr\u00e9f\u00e9r\u00e9es d'un manga",
|
|
"description": "Retourne les sources pr\u00e9f\u00e9r\u00e9es configur\u00e9es pour un manga, ou toutes les sources disponibles si aucune pr\u00e9f\u00e9rence d\u00e9finie",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "GetMangaPreferredSourcesResource identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"post": {
|
|
"operationId": "api_mangas_idpreferred-sources_post",
|
|
"tags": [
|
|
"Scraping"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Scraping resource created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
}
|
|
},
|
|
"links": {}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable entity"
|
|
}
|
|
},
|
|
"summary": "Configurer les sources pr\u00e9f\u00e9r\u00e9es d'un manga",
|
|
"description": "D\u00e9finit l'ordre de priorit\u00e9 des sources de scraping pour un manga. Format attendu: {\"sourceIds\": [\"source1\", \"source2\"]}",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "SetMangaPreferredSourcesResource identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"description": "",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"sourceIds": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"example": {
|
|
"sourceIds": [
|
|
"1",
|
|
"2"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"required": false
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/{id}/volumes/{volume}/download": {
|
|
"get": {
|
|
"operationId": "download_manga_volume",
|
|
"tags": [
|
|
"Cbz"
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Cbz resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {}
|
|
},
|
|
"text/html": {
|
|
"schema": {}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Retrieves a Cbz resource.",
|
|
"description": "Retrieves a Cbz resource.",
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"in": "path",
|
|
"description": "DownloadVolumeResource identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "volume",
|
|
"in": "path",
|
|
"description": "DownloadVolumeResource identifier",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/reader/chapter/{chapterId}": {
|
|
"get": {
|
|
"operationId": "api_readerchapter_chapterId_get",
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Contexte du chapitre",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"number": {
|
|
"type": "string"
|
|
},
|
|
"manga": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"navigation": {
|
|
"type": "object",
|
|
"properties": {
|
|
"previous": {
|
|
"type": "object",
|
|
"nullable": true,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"number": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"next": {
|
|
"type": "object",
|
|
"nullable": true,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"number": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Chapitre non trouv\u00e9"
|
|
}
|
|
},
|
|
"summary": "R\u00e9cup\u00e8re le contexte d'un chapitre",
|
|
"description": "Retourne les m\u00e9tadonn\u00e9es du chapitre et sa navigation",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/reader/chapter/{chapterId}/page/{pageNumber}": {
|
|
"get": {
|
|
"operationId": "api_readerchapter_chapterIdpage_pageNumber_get",
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Page du chapitre",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"pageNumber": {
|
|
"type": "integer"
|
|
},
|
|
"base64Content": {
|
|
"type": "string",
|
|
"description": "Contenu de l'image en base64"
|
|
},
|
|
"mimeType": {
|
|
"type": "string",
|
|
"example": "image/jpeg"
|
|
},
|
|
"dimensions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"width": {
|
|
"type": "integer"
|
|
},
|
|
"height": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Chapitre ou page non trouv\u00e9"
|
|
}
|
|
},
|
|
"summary": "R\u00e9cup\u00e8re une page sp\u00e9cifique d'un chapitre",
|
|
"description": "Retourne le contenu d'une page en base64 avec ses m\u00e9tadonn\u00e9es",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "path",
|
|
"description": "L'identifiant du chapitre",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "pageNumber",
|
|
"in": "path",
|
|
"description": "Le num\u00e9ro de la page \u00e0 r\u00e9cup\u00e9rer",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"minimum": 1
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/reader/chapter/{chapterId}/pages": {
|
|
"get": {
|
|
"operationId": "api_readerchapter_chapterIdpages_get",
|
|
"tags": [
|
|
"Reader"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Collection pagin\u00e9e des pages du chapitre",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"pages": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"number": {
|
|
"type": "integer"
|
|
},
|
|
"dimensions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"width": {
|
|
"type": "integer"
|
|
},
|
|
"height": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"totalItems": {
|
|
"type": "integer"
|
|
},
|
|
"currentPage": {
|
|
"type": "integer"
|
|
},
|
|
"itemsPerPage": {
|
|
"type": "integer"
|
|
},
|
|
"totalPages": {
|
|
"type": "integer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Chapitre non trouv\u00e9"
|
|
}
|
|
},
|
|
"summary": "R\u00e9cup\u00e8re les pages d'un chapitre",
|
|
"description": "Retourne une collection pagin\u00e9e des pages du chapitre",
|
|
"parameters": [
|
|
{
|
|
"name": "chapterId",
|
|
"in": "path",
|
|
"description": "",
|
|
"required": true,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "string"
|
|
},
|
|
"style": "simple",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "page",
|
|
"in": "query",
|
|
"description": "",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 1
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
},
|
|
{
|
|
"name": "itemsPerPage",
|
|
"in": "query",
|
|
"description": "",
|
|
"required": false,
|
|
"deprecated": false,
|
|
"allowEmptyValue": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"default": 20
|
|
},
|
|
"style": "form",
|
|
"explode": false,
|
|
"allowReserved": false
|
|
}
|
|
],
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/scraping/chapters": {
|
|
"post": {
|
|
"operationId": "api_scrapingchapters_post",
|
|
"tags": [
|
|
"Scraping"
|
|
],
|
|
"responses": {
|
|
"202": {
|
|
"description": "Scraping resource created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
}
|
|
},
|
|
"links": {}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable entity"
|
|
}
|
|
},
|
|
"summary": "Creates a Scraping resource.",
|
|
"description": "Creates a Scraping resource.",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"description": "The new Scraping resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping.jsonhal"
|
|
}
|
|
},
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
},
|
|
"application/x-cbz": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Scraping"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/scraping/test-configuration": {
|
|
"post": {
|
|
"operationId": "api_scrapingtest-configuration_post",
|
|
"tags": [
|
|
"Scraping",
|
|
"Configuration"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Test de configuration r\u00e9ussi",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean",
|
|
"description": "Indique si le test a r\u00e9ussi"
|
|
},
|
|
"imageUrls": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"description": "Liste des URLs d'images trouv\u00e9es"
|
|
},
|
|
"totalImages": {
|
|
"type": "integer",
|
|
"description": "Nombre total d'images trouv\u00e9es"
|
|
},
|
|
"testedUrl": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "URL qui a \u00e9t\u00e9 test\u00e9e"
|
|
},
|
|
"scrapingType": {
|
|
"type": "string",
|
|
"description": "Type de scraping utilis\u00e9"
|
|
},
|
|
"errors": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"description": "Type d'erreur (selector_error, url_error, general_error)"
|
|
},
|
|
"field": {
|
|
"type": "string",
|
|
"description": "Champ concern\u00e9 par l'erreur"
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"description": "Message d'erreur d\u00e9taill\u00e9"
|
|
},
|
|
"suggestion": {
|
|
"type": "string",
|
|
"description": "Suggestion pour corriger l'erreur"
|
|
}
|
|
}
|
|
},
|
|
"description": "Liste des erreurs d\u00e9taill\u00e9es (vide en cas de succ\u00e8s)"
|
|
}
|
|
}
|
|
},
|
|
"examples": {
|
|
"succes": {
|
|
"summary": "Test r\u00e9ussi",
|
|
"value": {
|
|
"success": true,
|
|
"imageUrls": [
|
|
"https://mangasite.example.com/images/chapter1/page1.jpg",
|
|
"https://mangasite.example.com/images/chapter1/page2.jpg",
|
|
"https://mangasite.example.com/images/chapter1/page3.jpg"
|
|
],
|
|
"totalImages": 3,
|
|
"testedUrl": "https://mangasite.example.com/manga/one-piece/chapter/1",
|
|
"scrapingType": "html",
|
|
"errors": []
|
|
}
|
|
},
|
|
"echec_selecteur": {
|
|
"summary": "\u00c9chec - S\u00e9lecteur invalide",
|
|
"value": {
|
|
"success": false,
|
|
"imageUrls": [],
|
|
"totalImages": 0,
|
|
"testedUrl": "https://mangasite.example.com/manga/one-piece/chapter/1",
|
|
"scrapingType": "html",
|
|
"errors": [
|
|
{
|
|
"type": "selector_error",
|
|
"field": "imageSelector",
|
|
"message": "Le s\u00e9lecteur d'image '.invalid-selector' ne trouve aucun \u00e9l\u00e9ment sur la page",
|
|
"suggestion": "V\u00e9rifiez que le s\u00e9lecteur CSS est correct et qu'il correspond aux \u00e9l\u00e9ments d'image sur la page"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"echec_url": {
|
|
"summary": "\u00c9chec - URL inaccessible",
|
|
"value": {
|
|
"success": false,
|
|
"imageUrls": [],
|
|
"totalImages": 0,
|
|
"testedUrl": "https://invalid-site.example.com/chapter/1",
|
|
"scrapingType": "html",
|
|
"errors": [
|
|
{
|
|
"type": "url_error",
|
|
"field": "testUrl",
|
|
"message": "Impossible d'acc\u00e9der \u00e0 l'URL de test: https://invalid-site.example.com/chapter/1",
|
|
"suggestion": "V\u00e9rifiez que l'URL est correcte et accessible, et que le chapitre existe"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Erreur de validation des donn\u00e9es d'entr\u00e9e",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"example": "https://tools.ietf.org/html/rfc2616#section-10"
|
|
},
|
|
"title": {
|
|
"type": "string",
|
|
"example": "An error occurred"
|
|
},
|
|
"detail": {
|
|
"type": "string",
|
|
"example": "baseUrl: L'URL de base doit \u00eatre une URL valide"
|
|
},
|
|
"violations": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"propertyPath": {
|
|
"type": "string",
|
|
"description": "Champ contenant l'erreur"
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"description": "Message d'erreur de validation"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"example": {
|
|
"type": "https://symfony.com/errors/validation",
|
|
"title": "Validation Failed",
|
|
"detail": "baseUrl: L'URL de base doit \u00eatre une URL valide",
|
|
"violations": [
|
|
{
|
|
"propertyPath": "baseUrl",
|
|
"message": "L'URL de base doit \u00eatre une URL valide"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
}
|
|
},
|
|
"summary": "Tester une configuration de scraper",
|
|
"description": "Teste une configuration de scraper en temps r\u00e9el sans l'enregistrer dans la base de donn\u00e9es. Cette API permet de valider les param\u00e8tres de scraping et de voir imm\u00e9diatement les URLs d'images qui seraient extraites.",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"description": "Configuration du scraper \u00e0 tester",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"baseUrl": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "URL de base du site web source",
|
|
"example": "https://mangasite.example.com"
|
|
},
|
|
"chapterUrlFormat": {
|
|
"type": "string",
|
|
"description": "Format d'URL pour acc\u00e9der aux chapitres avec placeholders {slug} et {chapter}",
|
|
"example": "https://mangasite.example.com/manga/{slug}/chapter/{chapter}"
|
|
},
|
|
"scrapingType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"html",
|
|
"javascript"
|
|
],
|
|
"description": "Type de scraping \u00e0 utiliser (html pour les sites statiques, javascript pour les sites dynamiques)",
|
|
"example": "html"
|
|
},
|
|
"testUrl": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "URL compl\u00e8te d'un chapitre existant \u00e0 utiliser pour le test",
|
|
"example": "https://mangasite.example.com/manga/one-piece/chapter/1"
|
|
},
|
|
"mangaSlug": {
|
|
"type": "string",
|
|
"description": "Slug du manga utilis\u00e9 dans les URLs (sera utilis\u00e9 pour construire les URLs futures)",
|
|
"example": "one-piece"
|
|
},
|
|
"chapterNumber": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"description": "Num\u00e9ro du chapitre \u00e0 tester",
|
|
"example": 1
|
|
},
|
|
"imageSelector": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "S\u00e9lecteur CSS pour identifier les images dans la page",
|
|
"example": "img.manga-page, .chapter-image img"
|
|
},
|
|
"nextPageSelector": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "S\u00e9lecteur CSS pour le lien vers la page suivante (pour les lecteurs horizontaux)",
|
|
"example": "a.next-page, .navigation .next"
|
|
},
|
|
"chapterSelector": {
|
|
"type": "string",
|
|
"nullable": true,
|
|
"description": "S\u00e9lecteur CSS pour identifier la zone contenant le chapitre",
|
|
"example": ".chapter-content, #manga-reader"
|
|
}
|
|
},
|
|
"required": [
|
|
"baseUrl",
|
|
"chapterUrlFormat",
|
|
"scrapingType",
|
|
"testUrl",
|
|
"mangaSlug",
|
|
"chapterNumber"
|
|
]
|
|
},
|
|
"examples": {
|
|
"lecteur_vertical": {
|
|
"summary": "Configuration pour un lecteur vertical",
|
|
"description": "Exemple de configuration pour un site avec toutes les images sur une seule page",
|
|
"value": {
|
|
"baseUrl": "https://mangasite.example.com",
|
|
"chapterUrlFormat": "https://mangasite.example.com/manga/{slug}/chapter/{chapter}",
|
|
"scrapingType": "html",
|
|
"testUrl": "https://mangasite.example.com/manga/one-piece/chapter/1",
|
|
"mangaSlug": "one-piece",
|
|
"chapterNumber": 1,
|
|
"imageSelector": "img.manga-page",
|
|
"nextPageSelector": null,
|
|
"chapterSelector": ".chapter-content"
|
|
}
|
|
},
|
|
"lecteur_horizontal": {
|
|
"summary": "Configuration pour un lecteur horizontal",
|
|
"description": "Exemple de configuration pour un site avec navigation page par page",
|
|
"value": {
|
|
"baseUrl": "https://mangasite.example.com",
|
|
"chapterUrlFormat": "https://mangasite.example.com/read/{slug}/{chapter}/1",
|
|
"scrapingType": "html",
|
|
"testUrl": "https://mangasite.example.com/read/one-piece/1/1",
|
|
"mangaSlug": "one-piece",
|
|
"chapterNumber": 1,
|
|
"imageSelector": "#manga-image",
|
|
"nextPageSelector": "a.next-page",
|
|
"chapterSelector": ".reader-container"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"required": false
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"Cbz": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Cbz.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Cbz.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ChapterListItem": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"number": {
|
|
"type": "number"
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"volume": {
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"isVisible": {
|
|
"type": "boolean"
|
|
},
|
|
"isAvailable": {
|
|
"type": "boolean"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ChapterListItem.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"number": {
|
|
"type": "number"
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"volume": {
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"isVisible": {
|
|
"type": "boolean"
|
|
},
|
|
"isAvailable": {
|
|
"type": "boolean"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ChapterListItem.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"number": {
|
|
"type": "number"
|
|
},
|
|
"title": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"volume": {
|
|
"type": [
|
|
"integer",
|
|
"null"
|
|
]
|
|
},
|
|
"isVisible": {
|
|
"type": "boolean"
|
|
},
|
|
"isAvailable": {
|
|
"type": "boolean"
|
|
},
|
|
"createdAt": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Chapters": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Chapters.ChapterCollection": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterListItem"
|
|
}
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
},
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"limit": {
|
|
"type": "integer"
|
|
},
|
|
"hasNextPage": {
|
|
"type": "boolean"
|
|
},
|
|
"hasPreviousPage": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Chapters.ChapterCollection.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterListItem.jsonhal"
|
|
}
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
},
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"limit": {
|
|
"type": "integer"
|
|
},
|
|
"hasNextPage": {
|
|
"type": "boolean"
|
|
},
|
|
"hasPreviousPage": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Chapters.ChapterCollection.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChapterListItem.jsonld"
|
|
}
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
},
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"limit": {
|
|
"type": "integer"
|
|
},
|
|
"hasNextPage": {
|
|
"type": "boolean"
|
|
},
|
|
"hasPreviousPage": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Chapters.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Chapters.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"ContentSource": {
|
|
"type": "object",
|
|
"description": "Exporte toutes les sources de contenu au format JSON",
|
|
"deprecated": false
|
|
},
|
|
"ContentSource.jsonhal": {
|
|
"type": "object",
|
|
"description": "Exporte toutes les sources de contenu au format JSON",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"ContentSource.jsonld": {
|
|
"type": "object",
|
|
"description": "Exporte toutes les sources de contenu au format JSON",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Conversion": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"file": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "binary"
|
|
},
|
|
"fileName": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"fileContent": {},
|
|
"filename": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"originalConvertedFilePath": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"Conversion.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"file": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "binary"
|
|
},
|
|
"fileName": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"fileContent": {},
|
|
"filename": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"originalConvertedFilePath": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"Conversion.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"file": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "binary"
|
|
},
|
|
"fileName": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"fileContent": {},
|
|
"filename": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"originalConvertedFilePath": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"Job": {
|
|
"type": "object",
|
|
"description": "Liste des jobs",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"id": {
|
|
"description": "Identifiant unique du job",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"description": "Type du job (ex: scraping_job)",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"description": "Status du job",
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "Date de cr\u00e9ation du job",
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"startedAt": {
|
|
"description": "Date de d\u00e9but d'ex\u00e9cution du job",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "date-time"
|
|
},
|
|
"completedAt": {
|
|
"description": "Date de fin d'ex\u00e9cution du job",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "date-time"
|
|
},
|
|
"failureReason": {
|
|
"description": "Raison de l'\u00e9chec si le job a \u00e9chou\u00e9",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"attempts": {
|
|
"minimum": 0,
|
|
"description": "Nombre de tentatives effectu\u00e9es",
|
|
"type": "integer"
|
|
},
|
|
"maxAttempts": {
|
|
"exclusiveMinimum": 0,
|
|
"description": "Nombre maximum de tentatives autoris\u00e9es",
|
|
"type": "integer"
|
|
},
|
|
"context": {
|
|
"description": "Donn\u00e9es contextuelles du job",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"status",
|
|
"createdAt"
|
|
]
|
|
},
|
|
"Job.jsonhal": {
|
|
"type": "object",
|
|
"description": "Liste des jobs",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"id": {
|
|
"description": "Identifiant unique du job",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"description": "Type du job (ex: scraping_job)",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"description": "Status du job",
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "Date de cr\u00e9ation du job",
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"startedAt": {
|
|
"description": "Date de d\u00e9but d'ex\u00e9cution du job",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "date-time"
|
|
},
|
|
"completedAt": {
|
|
"description": "Date de fin d'ex\u00e9cution du job",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "date-time"
|
|
},
|
|
"failureReason": {
|
|
"description": "Raison de l'\u00e9chec si le job a \u00e9chou\u00e9",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"attempts": {
|
|
"minimum": 0,
|
|
"description": "Nombre de tentatives effectu\u00e9es",
|
|
"type": "integer"
|
|
},
|
|
"maxAttempts": {
|
|
"exclusiveMinimum": 0,
|
|
"description": "Nombre maximum de tentatives autoris\u00e9es",
|
|
"type": "integer"
|
|
},
|
|
"context": {
|
|
"description": "Donn\u00e9es contextuelles du job",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"status",
|
|
"createdAt"
|
|
]
|
|
},
|
|
"Job.jsonld": {
|
|
"type": "object",
|
|
"description": "Liste des jobs",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Identifiant unique du job",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"description": "Type du job (ex: scraping_job)",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"description": "Status du job",
|
|
"type": "string"
|
|
},
|
|
"createdAt": {
|
|
"description": "Date de cr\u00e9ation du job",
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"startedAt": {
|
|
"description": "Date de d\u00e9but d'ex\u00e9cution du job",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "date-time"
|
|
},
|
|
"completedAt": {
|
|
"description": "Date de fin d'ex\u00e9cution du job",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"format": "date-time"
|
|
},
|
|
"failureReason": {
|
|
"description": "Raison de l'\u00e9chec si le job a \u00e9chou\u00e9",
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"attempts": {
|
|
"minimum": 0,
|
|
"description": "Nombre de tentatives effectu\u00e9es",
|
|
"type": "integer"
|
|
},
|
|
"maxAttempts": {
|
|
"exclusiveMinimum": 0,
|
|
"description": "Nombre maximum de tentatives autoris\u00e9es",
|
|
"type": "integer"
|
|
},
|
|
"context": {
|
|
"description": "Donn\u00e9es contextuelles du job",
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"status",
|
|
"createdAt"
|
|
]
|
|
},
|
|
"Manga": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"title",
|
|
"slug",
|
|
"description",
|
|
"author",
|
|
"publicationYear",
|
|
"genres",
|
|
"status"
|
|
],
|
|
"properties": {
|
|
"title": {
|
|
"minLength": 1,
|
|
"maxLength": 255,
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"pattern": "^([a-z0-9-]+)$",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"minimum": 1900,
|
|
"maximum": 2100,
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"minItems": 1,
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"ongoing",
|
|
"completed",
|
|
"hiatus"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"externalId": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"imageUrl": {
|
|
"format": "uri",
|
|
"externalDocs": {
|
|
"url": "https://schema.org/url"
|
|
},
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"rating": {
|
|
"minimum": 0,
|
|
"maximum": 5,
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"Manga.MangaCollection": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaListItem"
|
|
}
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
},
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"limit": {
|
|
"type": "integer"
|
|
},
|
|
"hasNextPage": {
|
|
"type": "boolean"
|
|
},
|
|
"hasPreviousPage": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Manga.MangaCollection.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaListItem.jsonhal"
|
|
}
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
},
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"limit": {
|
|
"type": "integer"
|
|
},
|
|
"hasNextPage": {
|
|
"type": "boolean"
|
|
},
|
|
"hasPreviousPage": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Manga.MangaCollection.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaListItem.jsonld"
|
|
}
|
|
},
|
|
"total": {
|
|
"type": "integer"
|
|
},
|
|
"page": {
|
|
"type": "integer"
|
|
},
|
|
"limit": {
|
|
"type": "integer"
|
|
},
|
|
"hasNextPage": {
|
|
"type": "boolean"
|
|
},
|
|
"hasPreviousPage": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Manga.MangaDetail": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"alternativeSlugs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"externalId": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"imageUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"thumbnailUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"monitored": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Manga.MangaDetail.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"alternativeSlugs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"externalId": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"imageUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"thumbnailUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"monitored": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Manga.MangaDetail.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"alternativeSlugs": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"externalId": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"imageUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"thumbnailUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"monitored": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Manga.MangaSearchCollection": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaSearchItem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Manga.MangaSearchCollection.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaSearchItem.jsonhal"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Manga.MangaSearchCollection.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaSearchItem.jsonld"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Manga.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"title",
|
|
"slug",
|
|
"description",
|
|
"author",
|
|
"publicationYear",
|
|
"genres",
|
|
"status"
|
|
],
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"title": {
|
|
"minLength": 1,
|
|
"maxLength": 255,
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"pattern": "^([a-z0-9-]+)$",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"minimum": 1900,
|
|
"maximum": 2100,
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"minItems": 1,
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"ongoing",
|
|
"completed",
|
|
"hiatus"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"externalId": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"imageUrl": {
|
|
"format": "uri",
|
|
"externalDocs": {
|
|
"url": "https://schema.org/url"
|
|
},
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"rating": {
|
|
"minimum": 0,
|
|
"maximum": 5,
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"Manga.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"title",
|
|
"slug",
|
|
"description",
|
|
"author",
|
|
"publicationYear",
|
|
"genres",
|
|
"status"
|
|
],
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"minLength": 1,
|
|
"maxLength": 255,
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"pattern": "^([a-z0-9-]+)$",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"minimum": 1900,
|
|
"maximum": 2100,
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"minItems": 1,
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"ongoing",
|
|
"completed",
|
|
"hiatus"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"externalId": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"imageUrl": {
|
|
"format": "uri",
|
|
"externalDocs": {
|
|
"url": "https://schema.org/url"
|
|
},
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"rating": {
|
|
"minimum": 0,
|
|
"maximum": 5,
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"MangaListItem": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"imageUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"thumbnailUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"MangaListItem.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"imageUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"thumbnailUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"MangaListItem.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"imageUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"thumbnailUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"createdAt": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
}
|
|
}
|
|
},
|
|
"MangaMonitoring": {
|
|
"type": "object",
|
|
"description": "Active ou d\u00e9sactive le monitoring automatique d'un manga",
|
|
"deprecated": false,
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"enabled": {}
|
|
}
|
|
},
|
|
"MangaMonitoring.jsonhal": {
|
|
"type": "object",
|
|
"description": "Active ou d\u00e9sactive le monitoring automatique d'un manga",
|
|
"deprecated": false,
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"enabled": {}
|
|
}
|
|
},
|
|
"MangaMonitoring.jsonld": {
|
|
"type": "object",
|
|
"description": "Active ou d\u00e9sactive le monitoring automatique d'un manga",
|
|
"deprecated": false,
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"enabled": {}
|
|
}
|
|
},
|
|
"MangaRefresh": {
|
|
"type": "object",
|
|
"description": "D\u00e9clenche la synchronisation et le scraping des nouveaux chapitres d'un manga",
|
|
"deprecated": false
|
|
},
|
|
"MangaRefresh.jsonhal": {
|
|
"type": "object",
|
|
"description": "D\u00e9clenche la synchronisation et le scraping des nouveaux chapitres d'un manga",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"MangaRefresh.jsonld": {
|
|
"type": "object",
|
|
"description": "D\u00e9clenche la synchronisation et le scraping des nouveaux chapitres d'un manga",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MangaSearchItem": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"externalId": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"imageUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"thumbnailUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"MangaSearchItem.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"externalId": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"imageUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"thumbnailUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"MangaSearchItem.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"externalId": {
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"type": "string"
|
|
},
|
|
"author": {
|
|
"type": "string"
|
|
},
|
|
"publicationYear": {
|
|
"type": "integer"
|
|
},
|
|
"genres": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"status": {
|
|
"type": "string"
|
|
},
|
|
"imageUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"thumbnailUrl": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"Mangadex": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"externalId"
|
|
],
|
|
"properties": {
|
|
"externalId": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Mangadex.MangaSearchCollection": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaSearchItem"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Mangadex.MangaSearchCollection.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaSearchItem.jsonhal"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Mangadex.MangaSearchCollection.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"items": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/MangaSearchItem.jsonld"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Mangadex.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"externalId"
|
|
],
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"externalId": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Mangadex.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"externalId"
|
|
],
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"externalId": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Reader": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false
|
|
},
|
|
"Reader.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Reader.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Scraping": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"chapterId"
|
|
],
|
|
"properties": {
|
|
"chapterId": {
|
|
"description": "ID du chapitre \u00e0 scraper",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Scraping.MangaPreferredSourcesDetail": {
|
|
"type": "object",
|
|
"description": "R\u00e9cup\u00e9rer les sources pr\u00e9f\u00e9r\u00e9es d'un manga ou toutes les sources si aucune pr\u00e9f\u00e9rence",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"mangaId": {
|
|
"type": "string"
|
|
},
|
|
"sources": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"hasPreferredSources": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Scraping.MangaPreferredSourcesDetail.jsonhal": {
|
|
"type": "object",
|
|
"description": "R\u00e9cup\u00e9rer les sources pr\u00e9f\u00e9r\u00e9es d'un manga ou toutes les sources si aucune pr\u00e9f\u00e9rence",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"mangaId": {
|
|
"type": "string"
|
|
},
|
|
"sources": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"hasPreferredSources": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Scraping.MangaPreferredSourcesDetail.jsonld": {
|
|
"type": "object",
|
|
"description": "R\u00e9cup\u00e9rer les sources pr\u00e9f\u00e9r\u00e9es d'un manga ou toutes les sources si aucune pr\u00e9f\u00e9rence",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"mangaId": {
|
|
"type": "string"
|
|
},
|
|
"sources": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"hasPreferredSources": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
},
|
|
"Scraping.TestScraperConfigurationResource": {
|
|
"type": "object",
|
|
"description": "Teste une configuration de scraper sans l'enregistrer",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"imageUrls": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"totalImages": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"testedUrl": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"scrapingType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"html",
|
|
"javascript"
|
|
]
|
|
},
|
|
"errors": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"selector_error",
|
|
"url_error",
|
|
"general_error"
|
|
],
|
|
"description": "Type d'erreur rencontr\u00e9e"
|
|
},
|
|
"field": {
|
|
"type": "string",
|
|
"description": "Champ de configuration concern\u00e9 par l'erreur"
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"description": "Message d'erreur d\u00e9taill\u00e9"
|
|
},
|
|
"suggestion": {
|
|
"type": "string",
|
|
"description": "Suggestion pour corriger l'erreur"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"field",
|
|
"message",
|
|
"suggestion"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Scraping.TestScraperConfigurationResource.jsonhal": {
|
|
"type": "object",
|
|
"description": "Teste une configuration de scraper sans l'enregistrer",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"imageUrls": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"totalImages": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"testedUrl": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"scrapingType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"html",
|
|
"javascript"
|
|
]
|
|
},
|
|
"errors": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"selector_error",
|
|
"url_error",
|
|
"general_error"
|
|
],
|
|
"description": "Type d'erreur rencontr\u00e9e"
|
|
},
|
|
"field": {
|
|
"type": "string",
|
|
"description": "Champ de configuration concern\u00e9 par l'erreur"
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"description": "Message d'erreur d\u00e9taill\u00e9"
|
|
},
|
|
"suggestion": {
|
|
"type": "string",
|
|
"description": "Suggestion pour corriger l'erreur"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"field",
|
|
"message",
|
|
"suggestion"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Scraping.TestScraperConfigurationResource.jsonld": {
|
|
"type": "object",
|
|
"description": "Teste une configuration de scraper sans l'enregistrer",
|
|
"deprecated": false,
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"success": {
|
|
"type": "boolean"
|
|
},
|
|
"imageUrls": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
}
|
|
},
|
|
"totalImages": {
|
|
"type": "integer",
|
|
"minimum": 0
|
|
},
|
|
"testedUrl": {
|
|
"type": "string",
|
|
"format": "uri"
|
|
},
|
|
"scrapingType": {
|
|
"type": "string",
|
|
"enum": [
|
|
"html",
|
|
"javascript"
|
|
]
|
|
},
|
|
"errors": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"selector_error",
|
|
"url_error",
|
|
"general_error"
|
|
],
|
|
"description": "Type d'erreur rencontr\u00e9e"
|
|
},
|
|
"field": {
|
|
"type": "string",
|
|
"description": "Champ de configuration concern\u00e9 par l'erreur"
|
|
},
|
|
"message": {
|
|
"type": "string",
|
|
"description": "Message d'erreur d\u00e9taill\u00e9"
|
|
},
|
|
"suggestion": {
|
|
"type": "string",
|
|
"description": "Suggestion pour corriger l'erreur"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"field",
|
|
"message",
|
|
"suggestion"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"Scraping.jsonhal": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"chapterId"
|
|
],
|
|
"properties": {
|
|
"_links": {
|
|
"type": "object",
|
|
"properties": {
|
|
"self": {
|
|
"type": "object",
|
|
"properties": {
|
|
"href": {
|
|
"type": "string",
|
|
"format": "iri-reference"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"chapterId": {
|
|
"description": "ID du chapitre \u00e0 scraper",
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"Scraping.jsonld": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"chapterId"
|
|
],
|
|
"properties": {
|
|
"@context": {
|
|
"readOnly": true,
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"@vocab": {
|
|
"type": "string"
|
|
},
|
|
"hydra": {
|
|
"type": "string",
|
|
"enum": [
|
|
"http://www.w3.org/ns/hydra/core#"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"@vocab",
|
|
"hydra"
|
|
],
|
|
"additionalProperties": true
|
|
}
|
|
]
|
|
},
|
|
"@id": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"@type": {
|
|
"readOnly": true,
|
|
"type": "string"
|
|
},
|
|
"chapterId": {
|
|
"description": "ID du chapitre \u00e0 scraper",
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {},
|
|
"parameters": {},
|
|
"examples": {},
|
|
"requestBodies": {},
|
|
"headers": {},
|
|
"securitySchemes": {
|
|
"access_token": {
|
|
"type": "http",
|
|
"description": "",
|
|
"scheme": "bearer"
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"access_token": []
|
|
}
|
|
],
|
|
"tags": []
|
|
} |