3739 lines
148 KiB
JSON
3739 lines
148 KiB
JSON
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "Mangarr API",
|
|
"description": "",
|
|
"version": "1.0.0"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "/",
|
|
"description": ""
|
|
}
|
|
],
|
|
"paths": {
|
|
"/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"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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": [
|
|
"MangaChapters"
|
|
],
|
|
"responses": {
|
|
"202": {
|
|
"description": "MangaChapters resource created",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters.jsonhal"
|
|
}
|
|
}
|
|
},
|
|
"links": {}
|
|
},
|
|
"400": {
|
|
"description": "Invalid input"
|
|
},
|
|
"422": {
|
|
"description": "Unprocessable entity"
|
|
}
|
|
},
|
|
"summary": "Creates a MangaChapters resource.",
|
|
"description": "Creates a MangaChapters resource.",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"description": "The new MangaChapters resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters.jsonhal"
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
},
|
|
"/api/mangas/create-from-mangadex": {
|
|
"post": {
|
|
"operationId": "api_mangascreate-from-mangadex_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"
|
|
}
|
|
}
|
|
},
|
|
"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": [
|
|
"MangaChapters"
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "MangaChapters resource",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters.ChapterCollection"
|
|
}
|
|
},
|
|
"application/ld+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters.ChapterCollection.jsonld"
|
|
}
|
|
},
|
|
"text/html": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters.ChapterCollection"
|
|
}
|
|
},
|
|
"application/hal+json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MangaChapters.ChapterCollection.jsonhal"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"404": {
|
|
"description": "Resource not found"
|
|
}
|
|
},
|
|
"summary": "Retrieves a MangaChapters resource.",
|
|
"description": "Retrieves a MangaChapters 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}/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"
|
|
}
|
|
}
|
|
},
|
|
"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/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"
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"deprecated": false
|
|
},
|
|
"parameters": []
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
},
|
|
"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"
|
|
]
|
|
},
|
|
"rating": {
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"MangaChapters": {
|
|
"type": "object",
|
|
"description": "",
|
|
"deprecated": false,
|
|
"required": [
|
|
"externalId"
|
|
],
|
|
"properties": {
|
|
"externalId": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
},
|
|
"MangaChapters.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"
|
|
}
|
|
}
|
|
},
|
|
"MangaChapters.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"
|
|
}
|
|
}
|
|
},
|
|
"MangaChapters.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"
|
|
}
|
|
}
|
|
},
|
|
"MangaChapters.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"
|
|
}
|
|
}
|
|
},
|
|
"MangaChapters.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"
|
|
}
|
|
}
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"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.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"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"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.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": []
|
|
} |